diff --git a/PKG-INFO b/PKG-INFO index 1383b005..5851122e 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,206 +1,206 @@ Metadata-Version: 2.1 Name: swh.web -Version: 0.0.385 +Version: 0.0.386 Summary: Software Heritage Web UI Home-page: https://forge.softwareheritage.org/diffusion/DWUI/ Author: Software Heritage developers Author-email: swh-devel@inria.fr License: UNKNOWN Project-URL: Bug Reports, https://forge.softwareheritage.org/maniphest Project-URL: Funding, https://www.softwareheritage.org/donate Project-URL: Source, https://forge.softwareheritage.org/source/swh-web Project-URL: Documentation, https://docs.softwareheritage.org/devel/swh-web/ Platform: UNKNOWN Classifier: Programming Language :: Python :: 3 Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+) Classifier: Operating System :: OS Independent Classifier: Development Status :: 5 - Production/Stable Classifier: Framework :: Django Requires-Python: >=3.7 Description-Content-Type: text/markdown Provides-Extra: testing License-File: LICENSE License-File: AUTHORS # swh-web This repository holds the development of Software Heritage web applications: * swh-web API (https://archive.softwareheritage.org/api): enables to query the content of the archive through HTTP requests and get responses in JSON or YAML. * swh-web browse (https://archive.softwareheritage.org/browse): graphical interface that eases the navigation in the archive. Documentation about how to use these components but also the details of their URI schemes can be found in the docs folder. The produced HTML documentation can be read and browsed at https://docs.softwareheritage.org/devel/swh-web/index.html. ## Technical details Those applications are powered by: * [Django Web Framework](https://www.djangoproject.com/) on the backend side with the following extensions enabled: * [django-rest-framework](http://www.django-rest-framework.org/) * [django-webpack-loader](https://github.com/owais/django-webpack-loader) * [django-js-reverse](http://django-js-reverse.readthedocs.io/en/latest/) * [webpack](https://webpack.js.org/) on the frontend side for better static assets management, including: * assets dependencies management and retrieval through [yarn](https://yarnpkg.com/en/) * linting of custom javascript code (through [eslint](https://eslint.org/)) and stylesheets (through [stylelint](https://stylelint.io/)) * use of [es6](http://es6-features.org) syntax and advanced javascript feature like [async/await](https://javascript.info/async-await) or [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) thanks to [babel](https://babeljs.io/) (es6 to es5 transpiler and polyfills provider) * assets minification (using [terser](https://github.com/terser-js/terser) and [cssnano](http://cssnano.co/)) but also dead code elimination for production use ## How to build, run and test ### Backend requirements First you will need [Python 3](https://www.python.org) and a complete [swh development environment](https://forge.softwareheritage.org/source/swh-environment/) installed. To run the backend, you need to have the following [Python 3 modules](requirements.txt) installed. To run the backend tests, the following [Python 3 modules](requirements-test.txt) are also required to be installed. One easy way to install them is to use the `pip` tool: ``` $ pip install -r requirements.txt -r requirements-test.txt ``` ### Frontend requirements To compile the frontend assets, you need to have [nodejs](https://nodejs.org/en/) >= 12.0.0 and [yarn](https://yarnpkg.com/en/) installed. If you are on Debian, you can easily install an up to date nodejs from the [nodesource](https://github.com/nodesource/distributions/blob/master/README.md) repository. Packages for yarn can be installed by following [these instructions](https://yarnpkg.com/en/docs/install#debian-stable). Alternatively, you can install yarn with `npm install yarn`, and add `YARN=node_modules/yarn/bin/yarn` as argument whenever you run `make`. Please note that the static assets bundles generated by webpack are not stored in the git repository. Follow the instructions below in order to generate them in order to be able to run the frontend part of the web applications. ### Make targets to execute the applications Below is the list of available make targets that can be executed from the root directory of swh-web in order to build and/or execute the web applications under various configurations: * **run-django-webpack-devserver**: Compile and serve not optimized (without mignification and dead code elimination) frontend static assets using [webpack-dev-server](https://github.com/webpack/webpack-dev-server) and run django server with development settings. This is the recommended target to use when developing swh-web as it enables automatic reloading of backend and frontend part of the applications when modifying source files (*.py, *.js, *.css, *.html). * **run-django-webpack-dev**: Compile not optimized (no minification, no dead code elimination) frontend static assets using webpack and run django server with development settings. This is the recommended target when one only wants to develop the backend side of the application. * **run-django-webpack-prod**: Compile optimized (with minification and dead code elimination) frontend static assets using webpack and run django server with production settings. This is useful to test the applications in production mode (with the difference that static assets are served by django). Production settings notably enable advanced django caching and you will need to have [memcached](https://memcached.org/) installed for that feature to work. * **run-django-server-dev**: Run the django server with development settings but without compiling frontend static assets through webpack. * **run-django-server-prod**: Run the django server with production settings but without compiling frontend static assets through webpack. * **run-gunicorn-server**: Run the web applications with production settings in a [gunicorn](http://gunicorn.org/) worker as they will be in real production environment. Once one of these targets executed, the web applications can be executed by pointing your browser to http://localhost:5004. ### Make targets to test the applications Some make targets are also available to easily execute the backend and frontend tests of the Software Heritage web applications. The backend tests are powered by the [pytest](https://docs.pytest.org/en/latest/) and [hypothesis](https://hypothesis.readthedocs.io/en/latest/) frameworks while the frontend ones rely on the use of the [cypress](https://www.cypress.io/) tool. Below is the exhaustive list of those targets: * **test**: execute the backend tests using a fast hypothesis profile (only one input example will be provided for each test) * **test-full**: execute the backend tests using a slower hypothesis profile (one hundred of input examples will be provided for each test which helps spotting possible bugs) * **test-frontend**: execute the frontend tests using cypress in headless mode but with some slow test suites disabled * **test-frontend-full**: execute the frontend tests using cypress in headless mode with all test suites enabled * **test-frontend-ui**: execute the frontend tests using the cypress GUI but with some slow test suites disabled * **test-frontend-full-ui**: execute the frontend tests using the cypress GUI with all test suites enabled ### Yarn targets Below is a list of available yarn targets in order to only execute the frontend static assets compilation (no web server will be executed): * **build-dev**: compile not optimized (without mignification and dead code elimination) frontend static assets and store the results in the `swh/web/static` folder. * **build**: compile optimized (with mignification and dead code elimination) frontend static assets and store the results in the `swh/web/static` folder. **The build target must be executed prior performing the Debian packaging of swh-web** in order for the package to contain the optimized assets dedicated to production environment. To execute these targets, issue the following command: ``` $ yarn ``` diff --git a/assets/src/bundles/browse/origin-search.js b/assets/src/bundles/browse/origin-search.js index 06ac97f7..7b547457 100644 --- a/assets/src/bundles/browse/origin-search.js +++ b/assets/src/bundles/browse/origin-search.js @@ -1,270 +1,271 @@ /** * Copyright (C) 2018-2021 The Software Heritage developers * See the AUTHORS file at the top-level directory of this distribution * License: GNU Affero General Public License version 3, or any later version * See top-level LICENSE file for more information */ import {handleFetchError, errorMessageFromResponse, isArchivedOrigin} from 'utils/functions'; const limit = 100; const linksPrev = []; let linkNext = null; let linkCurrent = null; let inSearch = false; function parseLinkHeader(s) { const re = /<(.+)>; rel="next"/; return s.match(re)[1]; } function fixTableRowsStyle() { setTimeout(() => { $('#origin-search-results tbody tr').removeAttr('style'); }); } function clearOriginSearchResultsTable() { $('#origin-search-results tbody tr').remove(); } async function populateOriginSearchResultsTable(origins) { if (origins.length > 0) { $('#swh-origin-search-results').show(); $('#swh-no-result').hide(); clearOriginSearchResultsTable(); const table = $('#origin-search-results tbody'); const promises = []; for (const [i, origin] of origins.entries()) { const browseUrl = `${Urls.browse_origin()}?origin_url=${encodeURIComponent(origin.url)}`; let tableRow = ``; tableRow += `` + '' + 'Checking'; tableRow += '' + `${origin.url}`; tableRow += `` + '' + 'Checking'; tableRow += ''; table.append(tableRow); // get async latest visit snapshot and update visit status icon let latestSnapshotUrl = Urls.api_1_origin_visit_latest(origin.url); latestSnapshotUrl += '?require_snapshot=true'; promises.push(fetch(latestSnapshotUrl)); } const responses = await Promise.all(promises); const responsesData = await Promise.all(responses.map(r => r.json())); for (let i = 0; i < responses.length; ++i) { const response = responses[i]; const data = responsesData[i]; if (response.status !== 404 && data.type) { $(`#visit-type-origin-${i}`).html(data.type); $(`#visit-status-origin-${i}`).html( 'Archived'); } else { $(`#visit-type-origin-${i}`).html('unknown'); $(`#visit-status-origin-${i}`).html( 'Pending archival'); if ($('#swh-filter-empty-visits').prop('checked')) { $(`#origin-${i}`).remove(); } } } fixTableRowsStyle(); } else { $('#swh-origin-search-results').hide(); $('#swh-no-result').text('No origins matching the search criteria were found.'); $('#swh-no-result').show(); } if (linkNext === null) { $('#origins-next-results-button').addClass('disabled'); } else { $('#origins-next-results-button').removeClass('disabled'); } if (linksPrev.length === 0) { $('#origins-prev-results-button').addClass('disabled'); } else { $('#origins-prev-results-button').removeClass('disabled'); } inSearch = false; setTimeout(() => { window.scrollTo(0, 0); }); } function searchOriginsFirst(searchQueryText, limit) { let baseSearchUrl; const searchMetadata = $('#swh-search-origin-metadata').prop('checked'); if (searchMetadata) { baseSearchUrl = new URL(Urls.api_1_origin_metadata_search(), window.location); baseSearchUrl.searchParams.append('fulltext', searchQueryText); } else { const useSearchQL = $('#swh-search-use-ql').prop('checked'); baseSearchUrl = new URL(Urls.api_1_origin_search(searchQueryText), window.location); baseSearchUrl.searchParams.append('use_ql', useSearchQL ?? false); } const withVisit = $('#swh-search-origins-with-visit').prop('checked'); baseSearchUrl.searchParams.append('limit', limit); baseSearchUrl.searchParams.append('with_visit', withVisit); const visitType = $('#swh-search-visit-type').val(); if (visitType !== 'any') { baseSearchUrl.searchParams.append('visit_type', visitType); } const searchUrl = baseSearchUrl.toString(); searchOrigins(searchUrl); } async function searchOrigins(searchUrl) { clearOriginSearchResultsTable(); $('.swh-loading').addClass('show'); try { const response = await fetch(searchUrl); handleFetchError(response); const data = await response.json(); // Save link to the current results page linkCurrent = searchUrl; // Save link to the next results page. linkNext = null; if (response.headers.has('Link')) { const parsedLink = parseLinkHeader(response.headers.get('Link')); if (parsedLink !== undefined) { linkNext = parsedLink; } } // prevLinks is updated by the caller, which is the one to know if // we're going forward or backward in the pages. $('.swh-loading').removeClass('show'); populateOriginSearchResultsTable(data); } catch (errorResponse) { const errorData = await errorResponse.json(); $('.swh-loading').removeClass('show'); inSearch = false; $('#swh-origin-search-results').hide(); $('#swh-no-result').text(errorMessageFromResponse( errorData, 'An unknown error occurred while searching origins')); $('#swh-no-result').show(); } } async function doSearch() { $('#swh-no-result').hide(); const searchQueryText = $('#swh-origins-url-patterns').val(); inSearch = true; if (searchQueryText.startsWith('swh:')) { try { // searchQueryText may be a PID so sending search queries to PID resolve endpoint const resolveSWHIDUrl = Urls.api_1_resolve_swhid(searchQueryText); const response = await fetch(resolveSWHIDUrl); handleFetchError(response); const data = await response.json(); // SWHID has been successfully resolved, // so redirect to browse page window.location = data.browse_url; } catch (response) { // display a useful error message if the input // looks like a SWHID const data = await response.json(); $('#swh-origin-search-results').hide(); $('.swh-search-pagination').hide(); $('#swh-no-result').text(data.reason); $('#swh-no-result').show(); } } else if (await isArchivedOrigin(searchQueryText)) { // redirect to the browse origin window.location.href = `${Urls.browse_origin()}?origin_url=${encodeURIComponent(searchQueryText)}`; } else { // otherwise, proceed with origins search irrespective of the error $('#swh-origin-search-results').show(); $('.swh-search-pagination').show(); searchOriginsFirst(searchQueryText, limit); } } export function initOriginSearch() { $(document).ready(() => { $('#swh-search-origins').submit(event => { event.preventDefault(); if (event.target.checkValidity()) { $(event.target).removeClass('was-validated'); const searchQueryText = $('#swh-origins-url-patterns').val().trim(); const withVisit = $('#swh-search-origins-with-visit').prop('checked'); const withContent = $('#swh-filter-empty-visits').prop('checked'); const useSearchQL = $('#swh-search-use-ql').prop('checked'); const searchMetadata = $('#swh-search-origin-metadata').prop('checked'); const visitType = $('#swh-search-visit-type').val(); const queryParameters = new URLSearchParams(); queryParameters.append('q', searchQueryText); if (withVisit) { queryParameters.append('with_visit', withVisit); } if (withContent) { queryParameters.append('with_content', withContent); } if (useSearchQL) { queryParameters.append('use_ql', useSearchQL ?? false); } if (searchMetadata) { queryParameters.append('search_metadata', searchMetadata); } if (visitType !== 'any') { queryParameters.append('visit_type', visitType); } // Update the url, triggering page reload and effective search window.location = `${Urls.browse_search()}?${queryParameters.toString()}`; } else { $(event.target).addClass('was-validated'); } }); $('#origins-next-results-button').click(event => { if ($('#origins-next-results-button').hasClass('disabled') || inSearch) { return; } inSearch = true; linksPrev.push(linkCurrent); searchOrigins(linkNext); event.preventDefault(); }); $('#origins-prev-results-button').click(event => { if ($('#origins-prev-results-button').hasClass('disabled') || inSearch) { return; } inSearch = true; searchOrigins(linksPrev.pop()); event.preventDefault(); }); - const urlParams = new URLSearchParams(window.location.search); - const query = urlParams.get('q'); - const withVisit = urlParams.has('with_visit'); - const useSearchQL = urlParams.has('use_ql'); - const withContent = urlParams.has('with_content'); - const searchMetadata = urlParams.has('search_metadata'); - const visitType = urlParams.get('visit_type'); - if (query) { + if (window.location.search) { + const urlParams = new URLSearchParams(window.location.search); + const query = urlParams.get('q'); + const withVisit = urlParams.has('with_visit'); + const useSearchQL = urlParams.has('use_ql'); + const withContent = urlParams.has('with_content'); + const searchMetadata = urlParams.has('search_metadata'); + const visitType = urlParams.get('visit_type'); + $('#swh-origins-url-patterns').val(query); $('#swh-search-origins-with-visit').prop('checked', withVisit); $('#swh-search-use-ql').prop('checked', useSearchQL ?? false); $('#swh-filter-empty-visits').prop('checked', withContent); $('#swh-search-origin-metadata').prop('checked', searchMetadata); if (visitType) { $('#swh-search-visit-type').val(visitType); } doSearch(); } }); } diff --git a/cypress/integration/content-rendering.spec.js b/cypress/integration/content-rendering.spec.js index 6a693959..42a5ded0 100644 --- a/cypress/integration/content-rendering.spec.js +++ b/cypress/integration/content-rendering.spec.js @@ -1,99 +1,99 @@ /** - * Copyright (C) 2019 The Software Heritage developers + * Copyright (C) 2019-2022 The Software Heritage developers * See the AUTHORS file at the top-level directory of this distribution * License: GNU Affero General Public License version 3, or any later version * See top-level LICENSE file for more information */ import {checkLanguageHighlighting, describeSlowTests} from '../utils'; describeSlowTests('Code highlighting tests', function() { const extensions = require('../fixtures/source-file-extensions.json'); extensions.forEach(ext => { it(`should highlight source files with extension ${ext}`, function() { cy.request(this.Urls.tests_content_code_extension(ext)).then(response => { const data = response.body; cy.visit(`${this.Urls.browse_content(data.sha1)}?path=file.${ext}`); checkLanguageHighlighting(data.language); }); }); }); const filenames = require('../fixtures/source-file-names.json'); filenames.forEach(filename => { it(`should highlight source files with filenames ${filename}`, function() { cy.request(this.Urls.tests_content_code_filename(filename)).then(response => { const data = response.body; cy.visit(`${this.Urls.browse_content(data.sha1)}?path=${filename}`); checkLanguageHighlighting(data.language); }); }); }); }); describe('Image rendering tests', function() { const imgExtensions = ['gif', 'jpeg', 'png', 'webp']; imgExtensions.forEach(ext => { it(`should render image with extension ${ext}`, function() { cy.request(this.Urls.tests_content_other_extension(ext)).then(response => { const data = response.body; - cy.visit(`${this.Urls.browse_content(data.sha1)}?path=file.${ext}`); + cy.visit(`${this.Urls.browse_content(data.sha1)}`); cy.get('.swh-content img') .should('be.visible'); }); }); }); }); describe('PDF rendering test', function() { function sum(previousValue, currentValue) { return previousValue + currentValue; } it(`should render a PDF file`, function() { cy.request(this.Urls.tests_content_other_extension('pdf')).then(response => { const data = response.body; - cy.visit(`${this.Urls.browse_content(data.sha1)}?path=file.pdf`); + cy.visit(`${this.Urls.browse_content(data.sha1)}`); cy.get('.swh-content canvas') .wait(2000) .then(canvas => { const width = canvas[0].width; const height = canvas[0].height; const context = canvas[0].getContext('2d'); const imgData = context.getImageData(0, 0, width, height); assert.notEqual(imgData.data.reduce(sum), 0); }); }); }); }); describe('Jupyter notebook rendering test', function() { it(`should render a notebook file to HTML`, function() { cy.request(this.Urls.tests_content_other_extension('ipynb')).then(response => { const data = response.body; cy.visit(`${this.Urls.browse_content(data.sha1)}?path=file.ipynb`); cy.get('.nb-notebook') .should('be.visible') .and('not.be.empty'); cy.get('.nb-cell.nb-markdown-cell') .should('be.visible') .and('not.be.empty'); cy.get('.nb-cell.nb-code-cell') .should('be.visible') .and('not.be.empty'); cy.get('.MathJax') .should('be.visible') .and('not.be.empty'); }); }); }); diff --git a/cypress/integration/origin-search.spec.js b/cypress/integration/origin-search.spec.js index 4589adbf..3e56ca82 100644 --- a/cypress/integration/origin-search.spec.js +++ b/cypress/integration/origin-search.spec.js @@ -1,608 +1,653 @@ /** * Copyright (C) 2019-2021 The Software Heritage developers * See the AUTHORS file at the top-level directory of this distribution * License: GNU Affero General Public License version 3, or any later version * See top-level LICENSE file for more information */ const nonExistentText = 'NoMatchExists'; let origin; let url; function doSearch(searchText, searchInputElt = '#swh-origins-url-patterns') { if (searchText.startsWith('swh:')) { cy.intercept('**/api/1/resolve/**') .as('swhidResolve'); } cy.get(searchInputElt) // to avoid sending too much SWHID validation requests // as cypress insert character one by one when using type .invoke('val', searchText.slice(0, -1)) .type(searchText.slice(-1)) .get('.swh-search-icon') .click({force: true}); if (searchText.startsWith('swh:')) { cy.wait('@swhidResolve'); } } function searchShouldRedirect(searchText, redirectUrl) { doSearch(searchText); cy.location('pathname') .should('equal', redirectUrl); } function searchShouldShowNotFound(searchText, msg) { doSearch(searchText); if (searchText.startsWith('swh:')) { cy.get('.invalid-feedback') .should('be.visible') .and('contain', msg); } } function stubOriginVisitLatestRequests(status = 200, response = {type: 'tar'}, aliasSuffix = '') { cy.intercept({url: '**/visit/latest/**'}, { body: response, statusCode: status }).as(`originVisitLatest${aliasSuffix}`); } describe('Test origin-search', function() { before(function() { origin = this.origin[0]; url = this.Urls.browse_search(); }); beforeEach(function() { cy.visit(url); }); it('should have focus on search form after page load', function() { cy.get('#swh-origins-url-patterns') .should('have.attr', 'autofocus'); // for some reason, autofocus is not honored when running cypress tests // while it is in non controlled browsers // .should('have.focus'); }); it('should redirect to browse when archived URL is searched', function() { cy.get('#swh-origins-url-patterns') .type(origin.url); cy.get('.swh-search-icon') .click(); cy.location('pathname') .should('eq', this.Urls.browse_origin_directory()); cy.location('search') .should('eq', `?origin_url=${origin.url}`); }); it('should not redirect for non valid URL', function() { cy.get('#swh-origins-url-patterns') .type('www.example'); // Invalid URL cy.get('.swh-search-icon') .click(); cy.location('pathname') .should('eq', this.Urls.browse_search()); // Stay in the current page }); it('should not redirect for valid non archived URL', function() { cy.get('#swh-origins-url-patterns') .type('http://eaxmple.com/test/'); // Valid URL, but not archived cy.get('.swh-search-icon') .click(); cy.location('pathname') .should('eq', this.Urls.browse_search()); // Stay in the current page }); it('should remove origin URL with no archived content', function() { stubOriginVisitLatestRequests(404); // Using a non full origin URL here // This is because T3354 redirects to the origin in case of a valid, archived URL cy.get('#swh-origins-url-patterns') .type(origin.url.slice(0, -1)); cy.get('.swh-search-icon') .click(); cy.wait('@originVisitLatest'); cy.get('#origin-search-results') .should('be.visible') .find('tbody tr').should('have.length', 0); stubOriginVisitLatestRequests(200, {}, '2'); cy.get('.swh-search-icon') .click(); cy.wait('@originVisitLatest2'); cy.get('#origin-search-results') .should('be.visible') .find('tbody tr').should('have.length', 0); }); it('should filter origins by visit type', function() { cy.intercept('**/visit/latest/**').as('checkOriginVisits'); cy.get('#swh-origins-url-patterns') .type('http'); for (const visitType of ['git', 'tar']) { cy.get('#swh-search-visit-type') .select(visitType); cy.get('.swh-search-icon') .click(); cy.wait('@checkOriginVisits'); cy.get('#origin-search-results') .should('be.visible'); cy.get('tbody tr td.swh-origin-visit-type').then(elts => { for (const elt of elts) { cy.get(elt).should('have.text', visitType); } }); } }); it('should show not found message when no repo matches', function() { searchShouldShowNotFound(nonExistentText, 'No origins matching the search criteria were found.'); }); it('should add appropriate URL parameters', function() { // Check all three checkboxes and check if // correct url params are added cy.get('#swh-search-origins-with-visit') .check({force: true}) .get('#swh-filter-empty-visits') .check({force: true}) .get('#swh-search-origin-metadata') .check({force: true}) .then(() => { const searchText = origin.url.slice(0, -1); doSearch(searchText); cy.location('search').then(locationSearch => { const urlParams = new URLSearchParams(locationSearch); const query = urlParams.get('q'); const withVisit = urlParams.has('with_visit'); const withContent = urlParams.has('with_content'); const searchMetadata = urlParams.has('search_metadata'); assert.strictEqual(query, searchText); assert.strictEqual(withVisit, true); assert.strictEqual(withContent, true); assert.strictEqual(searchMetadata, true); }); }); }); it('should search in origin intrinsic metadata', function() { cy.intercept('GET', '**/origin/metadata-search/**').as( 'originMetadataSearch' ); cy.get('#swh-search-origins-with-visit') .check({force: true}) .get('#swh-filter-empty-visits') .check({force: true}) .get('#swh-search-origin-metadata') .check({force: true}) .then(() => { const searchText = 'plugin'; doSearch(searchText); cy.wait('@originMetadataSearch').then((req) => { expect(req.response.body[0].metadata.metadata.description).to.equal( 'Line numbering plugin for Highlight.js' // metadata is defined in _TEST_ORIGINS variable in swh/web/tests/data.py ); }); }); }); it('should not send request to the resolve endpoint', function() { cy.intercept(`${this.Urls.api_1_resolve_swhid('').slice(0, -1)}**`) .as('resolveSWHID'); cy.intercept(`${this.Urls.api_1_origin_search(origin.url.slice(0, -1))}**`) .as('searchOrigin'); cy.get('#swh-origins-url-patterns') .type(origin.url.slice(0, -1), {delay: 0, force: true}); cy.get('.swh-search-icon') .click(); cy.wait('@searchOrigin'); cy.xhrShouldBeCalled('resolveSWHID', 0); cy.xhrShouldBeCalled('searchOrigin', 1); }); it('should add query language support for staff users', function() { cy.get('#swh-search-use-ql') .should('not.exist'); cy.adminLogin(); cy.visit(url); cy.get('#swh-search-use-ql') .should('exist'); }); it('should show error messages when using the query language', function() { cy.adminLogin(); cy.visit(url); cy.intercept('GET', `${this.Urls.api_1_origin_search('**')}**`, { body: { 'exception': 'BadInputExc', 'reason': 'Syntax error in search query: Invalid query' }, statusCode: 400 }) .as('searchOrigin'); cy.get('#swh-search-use-ql') .should('exist') .click({force: true}); // Covered by label cy.get('#swh-origins-url-patterns') .type('this is not a valid query') .type('{enter}'); cy.wait('@searchOrigin').then((xhr) => { cy.get('#swh-no-result') .should('contain', 'Syntax error in search query'); }); }); + function checkSearchHasResults() { + cy.get('.swh-search-icon') + .click(); + + cy.wait('@checkOriginVisits'); + + cy.get('#origin-search-results') + .should('be.visible'); + + cy.get('tbody tr td.swh-origin-visit-type') + .should('exist'); + } + + it('should search all origins when no pattern is provided', function() { + cy.intercept('**/visit/latest/**').as('checkOriginVisits'); + + // with default filters + checkSearchHasResults(); + + // remove filters + cy.get('#swh-search-origins-with-visit') + .uncheck({force: true}) + .get('#swh-filter-empty-visits') + .uncheck({force: true}); + checkSearchHasResults(); + + }); + + it('should search all origins for a visit type', function() { + cy.intercept('**/visit/latest/**').as('checkOriginVisits'); + + for (const visitType of ['git', 'tar']) { + cy.get('#swh-search-visit-type') + .select(visitType); + + checkSearchHasResults(); + + cy.get('tbody tr td.swh-origin-visit-type').then(elts => { + for (const elt of elts) { + cy.get(elt).should('have.text', visitType); + } + }); + } + }); + context('Test pagination', function() { it('should not paginate if there are not many results', function() { // Setup search cy.get('#swh-search-origins-with-visit') .uncheck({force: true}) .get('#swh-filter-empty-visits') .uncheck({force: true}) .then(() => { const searchText = 'libtess'; // Get first page of results doSearch(searchText); cy.get('.swh-search-result-entry') .should('have.length', 1); cy.get('.swh-search-result-entry#origin-0 td a') .should('have.text', 'https://github.com/memononen/libtess2'); cy.get('#origins-prev-results-button') .should('have.class', 'disabled'); cy.get('#origins-next-results-button') .should('have.class', 'disabled'); }); }); it('should paginate forward when there are many results', function() { stubOriginVisitLatestRequests(); // Setup search cy.get('#swh-search-origins-with-visit') .uncheck({force: true}) .get('#swh-filter-empty-visits') .uncheck({force: true}) .then(() => { const searchText = 'many.origins'; // Get first page of results doSearch(searchText); cy.wait('@originVisitLatest'); cy.get('.swh-search-result-entry') .should('have.length', 100); cy.get('.swh-search-result-entry#origin-0 td a') .should('have.text', 'https://many.origins/1'); cy.get('.swh-search-result-entry#origin-99 td a') .should('have.text', 'https://many.origins/100'); cy.get('#origins-prev-results-button') .should('have.class', 'disabled'); cy.get('#origins-next-results-button') .should('not.have.class', 'disabled'); // Get second page of results cy.get('#origins-next-results-button a') .click(); cy.wait('@originVisitLatest'); cy.get('.swh-search-result-entry') .should('have.length', 100); cy.get('.swh-search-result-entry#origin-0 td a') .should('have.text', 'https://many.origins/101'); cy.get('.swh-search-result-entry#origin-99 td a') .should('have.text', 'https://many.origins/200'); cy.get('#origins-prev-results-button') .should('not.have.class', 'disabled'); cy.get('#origins-next-results-button') .should('not.have.class', 'disabled'); // Get third (and last) page of results cy.get('#origins-next-results-button a') .click(); cy.wait('@originVisitLatest'); cy.get('.swh-search-result-entry') .should('have.length', 50); cy.get('.swh-search-result-entry#origin-0 td a') .should('have.text', 'https://many.origins/201'); cy.get('.swh-search-result-entry#origin-49 td a') .should('have.text', 'https://many.origins/250'); cy.get('#origins-prev-results-button') .should('not.have.class', 'disabled'); cy.get('#origins-next-results-button') .should('have.class', 'disabled'); }); }); it('should paginate backward from a middle page', function() { stubOriginVisitLatestRequests(); // Setup search cy.get('#swh-search-origins-with-visit') .uncheck({force: true}) .get('#swh-filter-empty-visits') .uncheck({force: true}) .then(() => { const searchText = 'many.origins'; // Get first page of results doSearch(searchText); cy.wait('@originVisitLatest'); cy.get('#origins-prev-results-button') .should('have.class', 'disabled'); cy.get('#origins-next-results-button') .should('not.have.class', 'disabled'); // Get second page of results cy.get('#origins-next-results-button a') .click(); cy.wait('@originVisitLatest'); cy.get('#origins-prev-results-button') .should('not.have.class', 'disabled'); cy.get('#origins-next-results-button') .should('not.have.class', 'disabled'); // Get first page of results again cy.get('#origins-prev-results-button a') .click(); cy.wait('@originVisitLatest'); cy.get('.swh-search-result-entry') .should('have.length', 100); cy.get('.swh-search-result-entry#origin-0 td a') .should('have.text', 'https://many.origins/1'); cy.get('.swh-search-result-entry#origin-99 td a') .should('have.text', 'https://many.origins/100'); cy.get('#origins-prev-results-button') .should('have.class', 'disabled'); cy.get('#origins-next-results-button') .should('not.have.class', 'disabled'); }); }); it('should paginate backward from the last page', function() { stubOriginVisitLatestRequests(); // Setup search cy.get('#swh-search-origins-with-visit') .uncheck({force: true}) .get('#swh-filter-empty-visits') .uncheck({force: true}) .then(() => { const searchText = 'many.origins'; // Get first page of results doSearch(searchText); cy.wait('@originVisitLatest'); cy.get('#origins-prev-results-button') .should('have.class', 'disabled'); cy.get('#origins-next-results-button') .should('not.have.class', 'disabled'); // Get second page of results cy.get('#origins-next-results-button a') .click(); cy.wait('@originVisitLatest'); cy.get('#origins-prev-results-button') .should('not.have.class', 'disabled'); cy.get('#origins-next-results-button') .should('not.have.class', 'disabled'); // Get third (and last) page of results cy.get('#origins-next-results-button a') .click(); cy.get('#origins-prev-results-button') .should('not.have.class', 'disabled'); cy.get('#origins-next-results-button') .should('have.class', 'disabled'); // Get second page of results again cy.get('#origins-prev-results-button a') .click(); cy.wait('@originVisitLatest'); cy.get('.swh-search-result-entry') .should('have.length', 100); cy.get('.swh-search-result-entry#origin-0 td a') .should('have.text', 'https://many.origins/101'); cy.get('.swh-search-result-entry#origin-99 td a') .should('have.text', 'https://many.origins/200'); cy.get('#origins-prev-results-button') .should('not.have.class', 'disabled'); cy.get('#origins-next-results-button') .should('not.have.class', 'disabled'); // Get first page of results again cy.get('#origins-prev-results-button a') .click(); cy.wait('@originVisitLatest'); cy.get('.swh-search-result-entry') .should('have.length', 100); cy.get('.swh-search-result-entry#origin-0 td a') .should('have.text', 'https://many.origins/1'); cy.get('.swh-search-result-entry#origin-99 td a') .should('have.text', 'https://many.origins/100'); cy.get('#origins-prev-results-button') .should('have.class', 'disabled'); cy.get('#origins-next-results-button') .should('not.have.class', 'disabled'); }); }); }); context('Test valid SWHIDs', function() { it('should resolve directory', function() { const redirectUrl = this.Urls.browse_directory(origin.content[0].directory); const swhid = `swh:1:dir:${origin.content[0].directory}`; searchShouldRedirect(swhid, redirectUrl); }); it('should resolve revision', function() { const redirectUrl = this.Urls.browse_revision(origin.revisions[0]); const swhid = `swh:1:rev:${origin.revisions[0]}`; searchShouldRedirect(swhid, redirectUrl); }); it('should resolve snapshot', function() { const redirectUrl = this.Urls.browse_snapshot_directory(origin.snapshot); const swhid = `swh:1:snp:${origin.snapshot}`; searchShouldRedirect(swhid, redirectUrl); }); it('should resolve content', function() { const redirectUrl = this.Urls.browse_content(`sha1_git:${origin.content[0].sha1git}`); const swhid = `swh:1:cnt:${origin.content[0].sha1git}`; searchShouldRedirect(swhid, redirectUrl); }); it('should not send request to the search endpoint', function() { const swhid = `swh:1:rev:${origin.revisions[0]}`; cy.intercept(this.Urls.api_1_resolve_swhid(swhid)) .as('resolveSWHID'); cy.intercept(`${this.Urls.api_1_origin_search('').slice(0, -1)}**`) .as('searchOrigin'); cy.get('#swh-origins-url-patterns') .type(swhid, {delay: 0, force: true}); cy.get('.swh-search-icon') .click(); cy.wait('@resolveSWHID'); cy.xhrShouldBeCalled('resolveSWHID', 1); cy.xhrShouldBeCalled('searchOrigin', 0); }); }); context('Test invalid SWHIDs', function() { it('should show not found for directory', function() { const swhid = `swh:1:dir:${this.unarchivedRepo.rootDirectory}`; const msg = `Directory with sha1_git ${this.unarchivedRepo.rootDirectory} not found`; searchShouldShowNotFound(swhid, msg); }); it('should show not found for snapshot', function() { const swhid = `swh:1:snp:${this.unarchivedRepo.snapshot}`; const msg = `Snapshot with id ${this.unarchivedRepo.snapshot} not found!`; searchShouldShowNotFound(swhid, msg); }); it('should show not found for revision', function() { const swhid = `swh:1:rev:${this.unarchivedRepo.revision}`; const msg = `Revision with sha1_git ${this.unarchivedRepo.revision} not found.`; searchShouldShowNotFound(swhid, msg); }); it('should show not found for content', function() { const swhid = `swh:1:cnt:${this.unarchivedRepo.content[0].sha1git}`; const msg = `Content with sha1_git checksum equals to ${this.unarchivedRepo.content[0].sha1git} not found!`; searchShouldShowNotFound(swhid, msg); }); function checkInvalidSWHIDReport(url, searchInputElt, swhidInput, validationMessagePattern = '') { cy.visit(url); doSearch(swhidInput, searchInputElt); cy.get(searchInputElt) .then($el => $el[0].checkValidity()).should('be.false'); cy.get(searchInputElt) .invoke('prop', 'validationMessage') .should('not.equal', '') .should('contain', validationMessagePattern); } it('should report invalid SWHID in search page input', function() { const swhidInput = `swh:1:cnt:${this.unarchivedRepo.content[0].sha1git};lines=45-60/`; checkInvalidSWHIDReport(this.Urls.browse_search(), '#swh-origins-url-patterns', swhidInput); cy.get('.invalid-feedback') .should('be.visible'); }); it('should report invalid SWHID in top right search input', function() { const swhidInput = `swh:1:cnt:${this.unarchivedRepo.content[0].sha1git};lines=45-60/`; checkInvalidSWHIDReport(this.Urls.browse_help(), '#swh-origins-search-top-input', swhidInput); }); it('should report SWHID with uppercase chars in search page input', function() { const swhidInput = `swh:1:cnt:${this.unarchivedRepo.content[0].sha1git}`.toUpperCase(); checkInvalidSWHIDReport(this.Urls.browse_search(), '#swh-origins-url-patterns', swhidInput, swhidInput.toLowerCase()); cy.get('.invalid-feedback') .should('be.visible'); }); it('should report SWHID with uppercase chars in top right search input', function() { let swhidInput = `swh:1:cnt:${this.unarchivedRepo.content[0].sha1git}`.toUpperCase(); swhidInput += ';lines=45-60/'; checkInvalidSWHIDReport(this.Urls.browse_help(), '#swh-origins-search-top-input', swhidInput.toLowerCase()); }); }); }); diff --git a/cypress/integration/origin-visits.spec.js b/cypress/integration/origin-visits.spec.js index ec0c4bdf..188b0f3e 100644 --- a/cypress/integration/origin-visits.spec.js +++ b/cypress/integration/origin-visits.spec.js @@ -1,94 +1,94 @@ /** * Copyright (C) 2019-2020 The Software Heritage developers * See the AUTHORS file at the top-level directory of this distribution * License: GNU Affero General Public License version 3, or any later version * See top-level LICENSE file for more information */ import {getTime} from '../utils'; let origin; function checkTimeLink(element) { expect(element.text()).not.to.be.empty; const urlParams = new URLSearchParams(element.attr('href').split('?')[1]); const timeStringLink = urlParams.get('timestamp'); // time in link should be equal to that in text assert.deepEqual(getTime(timeStringLink), getTime(element.text())); } function searchInCalendar(date) { cy.contains('label', 'Show all visits') .click(); cy.get(`.year${date.year}`) .click({force: true}); cy.contains('.month', date.monthName) .find('.day-content') .eq(date.date - 1) .trigger('mouseenter') .get('.popover-body') .should('be.visible') - .and('contain', `${date.hours}:${date.minutes} UTC`); + .and('contain', `${date.hours}:${date.minutes}:${date.seconds} UTC`); } describe('Visits tests', function() { before(function() { origin = this.origin[1]; }); beforeEach(function() { cy.visit(`${this.Urls.browse_origin_visits()}?origin_url=${origin.url}`); }); it('should display first full visit time', function() { cy.get('#swh-first-full-visit > .swh-visit-full') .then(($el) => { checkTimeLink($el); searchInCalendar(getTime($el.text())); }); }); it('should display last full visit time', function() { cy.get('#swh-last-full-visit > .swh-visit-full') .then(($el) => { checkTimeLink($el); searchInCalendar(getTime($el.text())); }); }); it('should display last visit time', function() { cy.get('#swh-last-visit > .swh-visit-full') .then(($el) => { checkTimeLink($el); searchInCalendar(getTime($el.text())); }); }); it('should display list of visits and mark them on calendar', function() { cy.get('.swh-visits-list-row .swh-visit-full') .should('be.visible') .each(($el) => { checkTimeLink($el); searchInCalendar(getTime($el.text())); }); }); it('should close calendar popover when leaving day', function() { cy.get('#swh-last-visit > .swh-visit-full') .then(($el) => { const date = getTime($el.text()); searchInCalendar(date); cy.contains('.month', date.monthName) .find('.day-content') .eq(date.date - 1) .trigger('mouseout', {force: true}); cy.get('.popover') .should('not.exist'); }); }); }); diff --git a/cypress/utils/index.js b/cypress/utils/index.js index 063100b7..a2c84253 100644 --- a/cypress/utils/index.js +++ b/cypress/utils/index.js @@ -1,47 +1,48 @@ /** * Copyright (C) 2019-2022 The Software Heritage developers * See the AUTHORS file at the top-level directory of this distribution * License: GNU Affero General Public License version 3, or any later version * See top-level LICENSE file for more information */ /** * Converts string with Time information * to an object with Time information */ export function getTime(text) { const date = new Date(text); function pad(n) { return n < 10 ? '0' + n : n; } const time = { date: date.getUTCDate(), month: date.getUTCMonth(), monthName: date.toLocaleString('en', {month: 'long'}), year: date.getUTCFullYear(), hours: pad(date.getUTCHours()), - minutes: pad(date.getUTCMinutes()) + minutes: pad(date.getUTCMinutes()), + seconds: pad(date.getUTCSeconds()) }; return time; } export function checkLanguageHighlighting(language) { cy.get('code') .should('be.visible') .and('have.class', 'hljs') .and('have.class', language) .and('not.be.empty') .find('table.hljs-ln') .should('be.visible') .and('not.be.empty'); } export function random(start, end) { const range = end - start; return Math.floor(Math.random() * range) + start; } export const describeSlowTests = Cypress.env('SKIP_SLOW_TESTS') === 1 ? describe.skip : describe; diff --git a/docs/index.rst b/docs/index.rst index 7d7cc33d..40c01591 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,30 +1,30 @@ .. _swh-web: Software Heritage - Web applications ==================================== Web application(s) to browse the archive, for both interactive (HTML UI) and mechanized (REST API) use .. toctree:: :maxdepth: 2 :caption: Contents: developers-info uri-scheme-api uri-scheme-browse - uri-scheme-identifiers + uri-scheme-swhids uri-scheme-misc Reference Documentation ----------------------- .. toctree:: :maxdepth: 2 * :ref:`routingtable` diff --git a/docs/uri-scheme-api-identifiers.rst b/docs/uri-scheme-api-swhids.rst similarity index 52% rename from docs/uri-scheme-api-identifiers.rst rename to docs/uri-scheme-api-swhids.rst index 26b7b6a7..9d1882dd 100644 --- a/docs/uri-scheme-api-identifiers.rst +++ b/docs/uri-scheme-api-swhids.rst @@ -1,7 +1,9 @@ -Persistent identifiers ----------------------- +SWHIDs (persistent identifiers) +------------------------------- .. autosimple:: swh.web.api.views.identifiers.api_resolve_swhid .. autosimple:: swh.web.api.views.identifiers.api_swhid_known +.. autosimple:: swh.web.api.views.raw.api_raw_object + diff --git a/docs/uri-scheme-api.rst b/docs/uri-scheme-api.rst index 2a7aa3d8..46188195 100644 --- a/docs/uri-scheme-api.rst +++ b/docs/uri-scheme-api.rst @@ -1,24 +1,24 @@ .. _swh-web-api-urls: swh-web API URLs ================ .. include:: uri-scheme-api-content.rst .. include:: uri-scheme-api-directory.rst .. include:: uri-scheme-api-graph.rst -.. include:: uri-scheme-api-identifiers.rst +.. include:: uri-scheme-api-swhids.rst .. include:: uri-scheme-api-origin.rst .. include:: uri-scheme-api-release.rst .. include:: uri-scheme-api-revision.rst .. include:: uri-scheme-api-snapshot.rst .. include:: uri-scheme-api-stat.rst .. include:: uri-scheme-api-vault.rst diff --git a/docs/uri-scheme-identifiers.rst b/docs/uri-scheme-swhids.rst similarity index 91% rename from docs/uri-scheme-identifiers.rst rename to docs/uri-scheme-swhids.rst index b67d772f..282e5d33 100644 --- a/docs/uri-scheme-identifiers.rst +++ b/docs/uri-scheme-swhids.rst @@ -1,30 +1,30 @@ -URI scheme for Software Heritage identifiers -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +URI scheme for SoftWare Heritage IDentifiers (SWHIDs) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A subset of Software Heritage objects (contents, directories, releases and revisions) can be browsed using :ref:`persistent-identifiers`. Those identifiers are guaranteed to remain stable (persistent) over time. .. http:get:: /(swhid)/ Endpoint to browse Software Heritage objects using their SWHIDs. A redirection to the adequate HTML view will be performed when reaching it. :param string swhid: a SoftWare Heritage persistent IDentifier object, or SWHID (see :ref:`persistent-identifiers` to learn more about its syntax) :resheader Location: the redirection URL for browsing the Software Heritage object associated to the provided identifier :statuscode 302: no error :statuscode 400: the provided identifier is malformed **Examples:** .. parsed-literal:: :swh_web:`swh:1:cnt:0ffd12d85cdec70c88e852fc3f5ea9fd342213cd` :swh_web:`swh:1:dir:db990da9af15427455ce7836ce2b8a34b9bf67f5` :swh_web:`swh:1:rel:a9b7e3f1eada90250a6b2ab2ef3e0a846cb16831` :swh_web:`swh:1:rev:f1b94134a4b879bc55c3dacdb496690c8ebdc03f` :swh_web:`swh:1:snp:673156c31a876c5b99b2fe3e89615529de9a3c44` diff --git a/pytest.ini b/pytest.ini index 62788f11..48a1c39d 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,9 +1,11 @@ [pytest] addopts = -p no:flask -p no:pytest_swh_storage --ignore=swh/web/tests/random_fixtures_test.py norecursedirs = build docs node_modules .tox DJANGO_SETTINGS_MODULE = swh.web.settings.tests filterwarnings = ignore:.*Plural value must be an integer, got float ignore:.*Using or importing the ABCs from 'collections' ignore:.*uses the.*fixture, which is reset between function calls ignore:.*'U' mode is deprecated + +asyncio_mode = strict diff --git a/static/js/browse.dd1b3cff11e141a4fbbc.js b/static/js/browse.dd1b3cff11e141a4fbbc.js new file mode 100644 index 00000000..708dfeea --- /dev/null +++ b/static/js/browse.dd1b3cff11e141a4fbbc.js @@ -0,0 +1,3 @@ +/*! For license information please see browse.dd1b3cff11e141a4fbbc.js.LICENSE.txt */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.swh=e():(t.swh=t.swh||{},t.swh.browse=e())}(self,(function(){return function(){var t={87757:function(t,e,n){t.exports=n(35666)},70103:function(t,e,n){"use strict";n.d(e,{E:function(){return o}});var r=n(86515);function o(){window.location.pathname===Urls.browse_origin_visits()?$("#swh-browse-origin-visits-nav-link").addClass("active"):window.location.pathname===Urls.browse_origin_branches()||window.location.pathname===Urls.browse_snapshot_branches()||window.location.pathname.endsWith("branches/")?$("#swh-browse-snapshot-branches-nav-link").addClass("active"):window.location.pathname===Urls.browse_origin_releases()||window.location.pathname===Urls.browse_snapshot_releases()||window.location.pathname.endsWith("releases/")?$("#swh-browse-snapshot-releases-nav-link").addClass("active"):$("#swh-browse-code-nav-link").addClass("active")}$(document).ready((function(){$(".dropdown-submenu a.dropdown-item").on("click",(function(t){$(t.target).next("div").toggle(),"none"!==$(t.target).next("div").css("display")?$(t.target).focus():$(t.target).blur(),t.stopPropagation(),t.preventDefault()})),$(".swh-popover-toggler").popover({boundary:"viewport",container:"body",html:!0,placement:function(){return $(window).width()\n
\n

\n
\n ',content:function(){var t=$(this).attr("data-popover-content");return $(t).children(".popover-body").remove().html()},title:function(){var t=$(this).attr("data-popover-content");return $(t).children(".popover-heading").html()},offset:"50vh",sanitize:!1}),$(".swh-vault-menu a.dropdown-item").on("click",(function(t){$(".swh-popover-toggler").popover("hide")})),$(".swh-popover-toggler").on("show.bs.popover",(function(t){$(".swh-popover-toggler:not(#"+t.currentTarget.id+")").popover("hide"),$(".swh-vault-menu .dropdown-menu").hide()})),$(".swh-actions-dropdown").on("hide.bs.dropdown",(function(){$(".swh-vault-menu .dropdown-menu").hide(),$(".swh-popover-toggler").popover("hide")})),$("#swh-branch-search-form").submit((function(t){var e=new URLSearchParams(window.location.search);e.set("name_include",$("#swh-branch-search-string").val().trim()),window.location.search=e.toString(),t.preventDefault()})),$("body").on("click",(function(t){$(t.target).parents(".swh-popover").length&&t.stopPropagation()}))}))},84664:function(t,e,n){"use strict";n.d(e,{A:function(){return k}});var r=n(15861),o=n(87757),i=n.n(o),a=n(59537);function s(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(n)return(n=n.call(t)).next.bind(n);if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return c(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0;return function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n; rel="next"/)[1]}function p(){setTimeout((function(){$("#origin-search-results tbody tr").removeAttr("style")}))}function v(){$("#origin-search-results tbody tr").remove()}function g(t){return w.apply(this,arguments)}function w(){return(w=(0,r.Z)(i().mark((function t(e){var n,r,o,a,c,f,d,g,w,y,m,b,x,k,S;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!(e.length>0)){t.next=17;break}for($("#swh-origin-search-results").show(),$("#swh-no-result").hide(),v(),n=$("#origin-search-results tbody"),r=[],o=s(e.entries());!(a=o()).done;)c=a.value,f=c[0],d=c[1],g=Urls.browse_origin()+"?origin_url="+encodeURIComponent(d.url),w='',w+='Checking',w+=''+d.url+"",w+='Checking',w+="",n.append(w),y=Urls.api_1_origin_visit_latest(d.url),y+="?require_snapshot=true",r.push(fetch(y));return t.next=9,Promise.all(r);case 9:return m=t.sent,t.next=12,Promise.all(m.map((function(t){return t.json()})));case 12:for(b=t.sent,x=0;xArchived')):($("#visit-type-origin-"+x).html("unknown"),$("#visit-status-origin-"+x).html('Pending archival'),$("#swh-filter-empty-visits").prop("checked")&&$("#origin-"+x).remove());p(),t.next=20;break;case 17:$("#swh-origin-search-results").hide(),$("#swh-no-result").text("No origins matching the search criteria were found."),$("#swh-no-result").show();case 20:null===l?$("#origins-next-results-button").addClass("disabled"):$("#origins-next-results-button").removeClass("disabled"),0===u.length?$("#origins-prev-results-button").addClass("disabled"):$("#origins-prev-results-button").removeClass("disabled"),h=!1,setTimeout((function(){window.scrollTo(0,0)}));case 24:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function y(t,e){var n;if($("#swh-search-origin-metadata").prop("checked"))(n=new URL(Urls.api_1_origin_metadata_search(),window.location)).searchParams.append("fulltext",t);else{var r=$("#swh-search-use-ql").prop("checked");(n=new URL(Urls.api_1_origin_search(t),window.location)).searchParams.append("use_ql",null!=r&&r)}var o=$("#swh-search-origins-with-visit").prop("checked");n.searchParams.append("limit",e),n.searchParams.append("with_visit",o);var i=$("#swh-search-visit-type").val();"any"!==i&&n.searchParams.append("visit_type",i),m(n.toString())}function m(t){return b.apply(this,arguments)}function b(){return(b=(0,r.Z)(i().mark((function t(e){var n,r,o,s;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return v(),$(".swh-loading").addClass("show"),t.prev=2,t.next=5,fetch(e);case 5:return n=t.sent,(0,a.ry)(n),t.next=9,n.json();case 9:r=t.sent,f=e,l=null,n.headers.has("Link")&&void 0!==(o=d(n.headers.get("Link")))&&(l=o),$(".swh-loading").removeClass("show"),g(r),t.next=27;break;case 17:return t.prev=17,t.t0=t.catch(2),t.next=21,t.t0.json();case 21:s=t.sent,$(".swh-loading").removeClass("show"),h=!1,$("#swh-origin-search-results").hide(),$("#swh-no-result").text((0,a.DK)(s,"An unknown error occurred while searching origins")),$("#swh-no-result").show();case 27:case"end":return t.stop()}}),t,null,[[2,17]])})))).apply(this,arguments)}function x(){return(x=(0,r.Z)(i().mark((function t(){var e,n,r,o,s;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if($("#swh-no-result").hide(),e=$("#swh-origins-url-patterns").val(),h=!0,!e.startsWith("swh:")){t.next=27;break}return t.prev=4,n=Urls.api_1_resolve_swhid(e),t.next=8,fetch(n);case 8:return r=t.sent,(0,a.ry)(r),t.next=12,r.json();case 12:o=t.sent,window.location=o.browse_url,t.next=25;break;case 16:return t.prev=16,t.t0=t.catch(4),t.next=20,t.t0.json();case 20:s=t.sent,$("#swh-origin-search-results").hide(),$(".swh-search-pagination").hide(),$("#swh-no-result").text(s.reason),$("#swh-no-result").show();case 25:t.next=36;break;case 27:return t.next=29,(0,a.Sv)(e);case 29:if(!t.sent){t.next=33;break}window.location.href=Urls.browse_origin()+"?origin_url="+encodeURIComponent(e),t.next=36;break;case 33:$("#swh-origin-search-results").show(),$(".swh-search-pagination").show(),y(e,100);case 36:case"end":return t.stop()}}),t,null,[[4,16]])})))).apply(this,arguments)}function k(){$(document).ready((function(){if($("#swh-search-origins").submit((function(t){if(t.preventDefault(),t.target.checkValidity()){$(t.target).removeClass("was-validated");var e=$("#swh-origins-url-patterns").val().trim(),n=$("#swh-search-origins-with-visit").prop("checked"),r=$("#swh-filter-empty-visits").prop("checked"),o=$("#swh-search-use-ql").prop("checked"),i=$("#swh-search-origin-metadata").prop("checked"),a=$("#swh-search-visit-type").val(),s=new URLSearchParams;s.append("q",e),n&&s.append("with_visit",n),r&&s.append("with_content",r),o&&s.append("use_ql",null!=o&&o),i&&s.append("search_metadata",i),"any"!==a&&s.append("visit_type",a),window.location=Urls.browse_search()+"?"+s.toString()}else $(t.target).addClass("was-validated")})),$("#origins-next-results-button").click((function(t){$("#origins-next-results-button").hasClass("disabled")||h||(h=!0,u.push(f),m(l),t.preventDefault())})),$("#origins-prev-results-button").click((function(t){$("#origins-prev-results-button").hasClass("disabled")||h||(h=!0,m(u.pop()),t.preventDefault())})),window.location.search){var t=new URLSearchParams(window.location.search),e=t.get("q"),n=t.has("with_visit"),r=t.has("use_ql"),o=t.has("with_content"),i=t.has("search_metadata"),a=t.get("visit_type");$("#swh-origins-url-patterns").val(e),$("#swh-search-origins-with-visit").prop("checked",n),$("#swh-search-use-ql").prop("checked",null!=r&&r),$("#swh-filter-empty-visits").prop("checked",o),$("#swh-search-origin-metadata").prop("checked",i),a&&$("#swh-search-visit-type").val(a),function(){x.apply(this,arguments)}()}}))}},71523:function(t,e,n){"use strict";function r(t,e){function n(){$(".swh-releases-switch").removeClass("active"),$(".swh-branches-switch").addClass("active"),$("#swh-tab-releases").removeClass("active"),$("#swh-tab-branches").addClass("active")}function r(){$(".swh-branches-switch").removeClass("active"),$(".swh-releases-switch").addClass("active"),$("#swh-tab-branches").removeClass("active"),$("#swh-tab-releases").addClass("active")}$(document).ready((function(){$(".dropdown-menu a.swh-branches-switch").click((function(t){n(),t.stopPropagation()})),$(".dropdown-menu a.swh-releases-switch").click((function(t){r(),t.stopPropagation()}));var o=!1;$("#swh-branches-releases-dd").on("show.bs.dropdown",(function(){if(!o){var t=$(".swh-branches-releases").width();$(".swh-branches-releases").width(t+25),o=!0}})),t&&(e?n():r())}))}n.d(e,{a:function(){return r}})},32218:function(t,e,n){"use strict";n.d(e,{Z:function(){return a},_:function(){return s}});var r=n(42152),o=n.n(r),i=(n(14547),n(86515));function a(t){t.preventDefault(),$(t.target).tab("show")}function s(t){t.stopPropagation();var e=$(t.target).closest(".swhid-ui").find(".swhid"),n=$(t.target).data("swhid-with-context"),r=$(t.target).data("swhid-with-context-url"),o=e.text();if($(t.target).prop("checked"))e.attr("href",r),o=n.replace(/;/g,";\n");else{var i=o.indexOf(";");-1!==i&&(o=o.slice(0,i)),e.attr("href","/"+o)}e.text(o),c()}function c(){for(var t=$("#swhid-tab-content").find(".swhid"),e=t.text().replace(/;\n/g,";"),n=[],r=";lines=",o=new RegExp(/L(\d+)/g),i=o.exec(window.location.hash);i;)n.push(parseInt(i[1])),i=o.exec(window.location.hash);n.length>0&&(r+=n[0]),n.length>1&&(r+="-"+n[1]),$("#swhid-context-option-content").prop("checked")&&(e=e.replace(/;lines=\d+-*\d*/g,""),n.length>0&&(e+=r),t.text(e.replace(/;/g,";\n")),t.attr("href","/"+e))}$(document).ready((function(){new(o())(".btn-swhid-copy",{text:function(t){return $(t).closest(".swhid-ui").find(".swhid").text().replace(/;\n/g,";")}}),new(o())(".btn-swhid-url-copy",{text:function(t){var e=$(t).closest(".swhid-ui").find(".swhid").attr("href");return window.location.origin+e}}),.7*window.innerWidth>1e3&&$("#swh-identifiers").css("width","1000px");var t={tabLocation:"right",clickScreenToCloseFilters:[function(){return $(".introjs-overlay").length>0},".ui-slideouttab-panel",".modal"],offset:function(){return $(window).width()1&&void 0!==arguments[1]?arguments[1]:{container:document.body},n="";return"string"==typeof t?n=f(t,e):t instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(null==t?void 0:t.type)?n=f(t.value,e):(n=c()(t),u("copy")),n};function d(t){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var p=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.action,n=void 0===e?"copy":e,r=t.container,o=t.target,i=t.text;if("copy"!==n&&"cut"!==n)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==o){if(!o||"object"!==d(o)||1!==o.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===n&&o.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===n&&(o.hasAttribute("readonly")||o.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return i?h(i,{container:r}):o?"cut"===n?l(o):h(o,{container:r}):void 0};function v(t){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function g(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{container:document.body};return h(t,e)}},{key:"cut",value:function(t){return l(t)}},{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach((function(t){n=n&&!!document.queryCommandSupported(t)})),n}}],(n=[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===v(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=a()(t,"click",(function(t){return e.onClick(t)}))}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget,n=this.action(e)||"copy",r=p({action:n,container:this.container,target:this.target(e),text:this.text(e)});this.emit(r?"success":"error",{action:n,text:r,trigger:e,clearSelection:function(){e&&e.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(t){return x("action",t)}},{key:"defaultTarget",value:function(t){var e=x("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return x("text",t)}},{key:"destroy",value:function(){this.listener.destroy()}}])&&g(e.prototype,n),r&&g(e,r),i}(o())},828:function(t){if("undefined"!=typeof Element&&!Element.prototype.matches){var e=Element.prototype;e.matches=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector}t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}},438:function(t,e,n){var r=n(828);function o(t,e,n,r,o){var a=i.apply(this,arguments);return t.addEventListener(n,a,o),{destroy:function(){t.removeEventListener(n,a,o)}}}function i(t,e,n,o){return function(n){n.delegateTarget=r(n.target,e),n.delegateTarget&&o.call(t,n)}}t.exports=function(t,e,n,r,i){return"function"==typeof t.addEventListener?o.apply(null,arguments):"function"==typeof n?o.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,(function(t){return o(t,e,n,r,i)})))}},879:function(t,e){e.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},e.nodeList=function(t){var n=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in t&&(0===t.length||e.node(t[0]))},e.string=function(t){return"string"==typeof t||t instanceof String},e.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},370:function(t,e,n){var r=n(879),o=n(438);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!r.string(e))throw new TypeError("Second argument must be a String");if(!r.fn(n))throw new TypeError("Third argument must be a Function");if(r.node(t))return function(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}(t,e,n);if(r.nodeList(t))return function(t,e,n){return Array.prototype.forEach.call(t,(function(t){t.addEventListener(e,n)})),{destroy:function(){Array.prototype.forEach.call(t,(function(t){t.removeEventListener(e,n)}))}}}(t,e,n);if(r.string(t))return function(t,e,n){return o(document.body,t,e,n)}(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},817:function(t){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var r=window.getSelection(),o=document.createRange();o.selectNodeContents(t),r.removeAllRanges(),r.addRange(o),e=r.toString()}return e}},279:function(t){function e(){}e.prototype={on:function(t,e,n){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var r=this;function o(){r.off(t,o),e.apply(n,arguments)}return o._=e,this.on(t,o,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),r=0,o=n.length;r=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var c=r.call(a,"catchLoc"),u=r.call(a,"finallyLoc");if(c&&u){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),C(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;C(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:T(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}},15861:function(t,e,n){"use strict";function r(t,e,n,r,o,i,a){try{var s=t[i](a),c=s.value}catch(t){return void n(t)}s.done?e(c):Promise.resolve(c).then(r,o)}function o(t){return function(){var e=this,n=arguments;return new Promise((function(o,i){var a=t.apply(e,n);function s(t){r(a,o,i,s,c,"next",t)}function c(t){r(a,o,i,s,c,"throw",t)}s(void 0)}))}}n.d(e,{Z:function(){return o}})},31955:function(){"use strict";function t(t){for(var e=1;e {\n\n $('.dropdown-submenu a.dropdown-item').on('click', e => {\n $(e.target).next('div').toggle();\n if ($(e.target).next('div').css('display') !== 'none') {\n $(e.target).focus();\n } else {\n $(e.target).blur();\n }\n e.stopPropagation();\n e.preventDefault();\n });\n\n $('.swh-popover-toggler').popover({\n boundary: 'viewport',\n container: 'body',\n html: true,\n placement: function() {\n const width = $(window).width();\n if (width < BREAKPOINT_SM) {\n return 'top';\n } else {\n return 'right';\n }\n },\n template: `
\n
\n

\n
\n
`,\n content: function() {\n var content = $(this).attr('data-popover-content');\n return $(content).children('.popover-body').remove().html();\n },\n title: function() {\n var title = $(this).attr('data-popover-content');\n return $(title).children('.popover-heading').html();\n },\n offset: '50vh',\n sanitize: false\n });\n\n $('.swh-vault-menu a.dropdown-item').on('click', e => {\n $('.swh-popover-toggler').popover('hide');\n });\n\n $('.swh-popover-toggler').on('show.bs.popover', (e) => {\n $(`.swh-popover-toggler:not(#${e.currentTarget.id})`).popover('hide');\n $('.swh-vault-menu .dropdown-menu').hide();\n });\n\n $('.swh-actions-dropdown').on('hide.bs.dropdown', () => {\n $('.swh-vault-menu .dropdown-menu').hide();\n $('.swh-popover-toggler').popover('hide');\n });\n\n $('#swh-branch-search-form').submit(function(e) {\n var searchParams = new URLSearchParams(window.location.search);\n searchParams.set('name_include',\n $('#swh-branch-search-string').val().trim());\n window.location.search = searchParams.toString();\n e.preventDefault();\n });\n\n $('body').on('click', e => {\n if ($(e.target).parents('.swh-popover').length) {\n e.stopPropagation();\n }\n });\n\n});\n\nexport function initBrowseNavbar() {\n if (window.location.pathname === Urls.browse_origin_visits()) {\n $('#swh-browse-origin-visits-nav-link').addClass('active');\n } else if (window.location.pathname === Urls.browse_origin_branches() ||\n window.location.pathname === Urls.browse_snapshot_branches() ||\n window.location.pathname.endsWith('branches/')) {\n $('#swh-browse-snapshot-branches-nav-link').addClass('active');\n } else if (window.location.pathname === Urls.browse_origin_releases() ||\n window.location.pathname === Urls.browse_snapshot_releases() ||\n window.location.pathname.endsWith('releases/')) {\n $('#swh-browse-snapshot-releases-nav-link').addClass('active');\n } else {\n $('#swh-browse-code-nav-link').addClass('active');\n }\n}\n","/**\n * Copyright (C) 2018-2021 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {handleFetchError, errorMessageFromResponse, isArchivedOrigin} from 'utils/functions';\n\nconst limit = 100;\nconst linksPrev = [];\nlet linkNext = null;\nlet linkCurrent = null;\nlet inSearch = false;\n\nfunction parseLinkHeader(s) {\n const re = /<(.+)>; rel=\"next\"/;\n return s.match(re)[1];\n}\n\nfunction fixTableRowsStyle() {\n setTimeout(() => {\n $('#origin-search-results tbody tr').removeAttr('style');\n });\n}\n\nfunction clearOriginSearchResultsTable() {\n $('#origin-search-results tbody tr').remove();\n}\n\nasync function populateOriginSearchResultsTable(origins) {\n if (origins.length > 0) {\n $('#swh-origin-search-results').show();\n $('#swh-no-result').hide();\n clearOriginSearchResultsTable();\n const table = $('#origin-search-results tbody');\n const promises = [];\n for (const [i, origin] of origins.entries()) {\n const browseUrl = `${Urls.browse_origin()}?origin_url=${encodeURIComponent(origin.url)}`;\n let tableRow =\n ``;\n tableRow +=\n `` +\n '' +\n 'Checking';\n tableRow +=\n '' +\n `${origin.url}`;\n tableRow +=\n `` +\n '' +\n 'Checking';\n tableRow += '';\n table.append(tableRow);\n // get async latest visit snapshot and update visit status icon\n let latestSnapshotUrl = Urls.api_1_origin_visit_latest(origin.url);\n latestSnapshotUrl += '?require_snapshot=true';\n promises.push(fetch(latestSnapshotUrl));\n }\n const responses = await Promise.all(promises);\n const responsesData = await Promise.all(responses.map(r => r.json()));\n for (let i = 0; i < responses.length; ++i) {\n const response = responses[i];\n const data = responsesData[i];\n if (response.status !== 404 && data.type) {\n $(`#visit-type-origin-${i}`).html(data.type);\n $(`#visit-status-origin-${i}`).html(\n 'Archived');\n } else {\n $(`#visit-type-origin-${i}`).html('unknown');\n $(`#visit-status-origin-${i}`).html(\n 'Pending archival');\n if ($('#swh-filter-empty-visits').prop('checked')) {\n $(`#origin-${i}`).remove();\n }\n }\n }\n fixTableRowsStyle();\n } else {\n $('#swh-origin-search-results').hide();\n $('#swh-no-result').text('No origins matching the search criteria were found.');\n $('#swh-no-result').show();\n }\n\n if (linkNext === null) {\n $('#origins-next-results-button').addClass('disabled');\n } else {\n $('#origins-next-results-button').removeClass('disabled');\n }\n\n if (linksPrev.length === 0) {\n $('#origins-prev-results-button').addClass('disabled');\n } else {\n $('#origins-prev-results-button').removeClass('disabled');\n }\n\n inSearch = false;\n setTimeout(() => {\n window.scrollTo(0, 0);\n });\n}\n\nfunction searchOriginsFirst(searchQueryText, limit) {\n let baseSearchUrl;\n const searchMetadata = $('#swh-search-origin-metadata').prop('checked');\n if (searchMetadata) {\n baseSearchUrl = new URL(Urls.api_1_origin_metadata_search(), window.location);\n baseSearchUrl.searchParams.append('fulltext', searchQueryText);\n } else {\n const useSearchQL = $('#swh-search-use-ql').prop('checked');\n baseSearchUrl = new URL(Urls.api_1_origin_search(searchQueryText), window.location);\n baseSearchUrl.searchParams.append('use_ql', useSearchQL ?? false);\n }\n\n const withVisit = $('#swh-search-origins-with-visit').prop('checked');\n baseSearchUrl.searchParams.append('limit', limit);\n baseSearchUrl.searchParams.append('with_visit', withVisit);\n const visitType = $('#swh-search-visit-type').val();\n if (visitType !== 'any') {\n baseSearchUrl.searchParams.append('visit_type', visitType);\n }\n const searchUrl = baseSearchUrl.toString();\n searchOrigins(searchUrl);\n}\n\nasync function searchOrigins(searchUrl) {\n clearOriginSearchResultsTable();\n $('.swh-loading').addClass('show');\n try {\n const response = await fetch(searchUrl);\n handleFetchError(response);\n const data = await response.json();\n // Save link to the current results page\n linkCurrent = searchUrl;\n // Save link to the next results page.\n linkNext = null;\n if (response.headers.has('Link')) {\n const parsedLink = parseLinkHeader(response.headers.get('Link'));\n if (parsedLink !== undefined) {\n linkNext = parsedLink;\n }\n }\n // prevLinks is updated by the caller, which is the one to know if\n // we're going forward or backward in the pages.\n\n $('.swh-loading').removeClass('show');\n populateOriginSearchResultsTable(data);\n } catch (errorResponse) {\n const errorData = await errorResponse.json();\n $('.swh-loading').removeClass('show');\n inSearch = false;\n $('#swh-origin-search-results').hide();\n $('#swh-no-result').text(errorMessageFromResponse(\n errorData, 'An unknown error occurred while searching origins'));\n $('#swh-no-result').show();\n }\n}\n\nasync function doSearch() {\n $('#swh-no-result').hide();\n const searchQueryText = $('#swh-origins-url-patterns').val();\n inSearch = true;\n if (searchQueryText.startsWith('swh:')) {\n try {\n // searchQueryText may be a PID so sending search queries to PID resolve endpoint\n const resolveSWHIDUrl = Urls.api_1_resolve_swhid(searchQueryText);\n const response = await fetch(resolveSWHIDUrl);\n handleFetchError(response);\n const data = await response.json();\n // SWHID has been successfully resolved,\n // so redirect to browse page\n window.location = data.browse_url;\n } catch (response) {\n // display a useful error message if the input\n // looks like a SWHID\n const data = await response.json();\n $('#swh-origin-search-results').hide();\n $('.swh-search-pagination').hide();\n $('#swh-no-result').text(data.reason);\n $('#swh-no-result').show();\n }\n } else if (await isArchivedOrigin(searchQueryText)) {\n // redirect to the browse origin\n window.location.href =\n `${Urls.browse_origin()}?origin_url=${encodeURIComponent(searchQueryText)}`;\n } else {\n // otherwise, proceed with origins search irrespective of the error\n $('#swh-origin-search-results').show();\n $('.swh-search-pagination').show();\n searchOriginsFirst(searchQueryText, limit);\n }\n}\n\nexport function initOriginSearch() {\n $(document).ready(() => {\n $('#swh-search-origins').submit(event => {\n event.preventDefault();\n if (event.target.checkValidity()) {\n $(event.target).removeClass('was-validated');\n const searchQueryText = $('#swh-origins-url-patterns').val().trim();\n const withVisit = $('#swh-search-origins-with-visit').prop('checked');\n const withContent = $('#swh-filter-empty-visits').prop('checked');\n const useSearchQL = $('#swh-search-use-ql').prop('checked');\n const searchMetadata = $('#swh-search-origin-metadata').prop('checked');\n const visitType = $('#swh-search-visit-type').val();\n const queryParameters = new URLSearchParams();\n queryParameters.append('q', searchQueryText);\n if (withVisit) {\n queryParameters.append('with_visit', withVisit);\n }\n if (withContent) {\n queryParameters.append('with_content', withContent);\n }\n if (useSearchQL) {\n queryParameters.append('use_ql', useSearchQL ?? false);\n }\n if (searchMetadata) {\n queryParameters.append('search_metadata', searchMetadata);\n }\n if (visitType !== 'any') {\n queryParameters.append('visit_type', visitType);\n }\n // Update the url, triggering page reload and effective search\n window.location = `${Urls.browse_search()}?${queryParameters.toString()}`;\n } else {\n $(event.target).addClass('was-validated');\n }\n });\n\n $('#origins-next-results-button').click(event => {\n if ($('#origins-next-results-button').hasClass('disabled') || inSearch) {\n return;\n }\n inSearch = true;\n linksPrev.push(linkCurrent);\n searchOrigins(linkNext);\n event.preventDefault();\n });\n\n $('#origins-prev-results-button').click(event => {\n if ($('#origins-prev-results-button').hasClass('disabled') || inSearch) {\n return;\n }\n inSearch = true;\n searchOrigins(linksPrev.pop());\n event.preventDefault();\n });\n\n if (window.location.search) {\n const urlParams = new URLSearchParams(window.location.search);\n const query = urlParams.get('q');\n const withVisit = urlParams.has('with_visit');\n const useSearchQL = urlParams.has('use_ql');\n const withContent = urlParams.has('with_content');\n const searchMetadata = urlParams.has('search_metadata');\n const visitType = urlParams.get('visit_type');\n\n $('#swh-origins-url-patterns').val(query);\n $('#swh-search-origins-with-visit').prop('checked', withVisit);\n $('#swh-search-use-ql').prop('checked', useSearchQL ?? false);\n $('#swh-filter-empty-visits').prop('checked', withContent);\n $('#swh-search-origin-metadata').prop('checked', searchMetadata);\n if (visitType) {\n $('#swh-search-visit-type').val(visitType);\n }\n doSearch();\n }\n });\n}\n","/**\n * Copyright (C) 2018 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nexport function initSnapshotNavigation(snapshotContext, branch) {\n\n function setBranchesTabActive() {\n $('.swh-releases-switch').removeClass('active');\n $('.swh-branches-switch').addClass('active');\n $('#swh-tab-releases').removeClass('active');\n $('#swh-tab-branches').addClass('active');\n }\n\n function setReleasesTabActive() {\n $('.swh-branches-switch').removeClass('active');\n $('.swh-releases-switch').addClass('active');\n $('#swh-tab-branches').removeClass('active');\n $('#swh-tab-releases').addClass('active');\n }\n\n $(document).ready(() => {\n $('.dropdown-menu a.swh-branches-switch').click(e => {\n setBranchesTabActive();\n e.stopPropagation();\n });\n\n $('.dropdown-menu a.swh-releases-switch').click(e => {\n setReleasesTabActive();\n e.stopPropagation();\n });\n\n let dropdownResized = false;\n\n // hack to resize the branches/releases dropdown content,\n // taking icons into account, in order to make the whole names readable\n $('#swh-branches-releases-dd').on('show.bs.dropdown', () => {\n if (dropdownResized) return;\n const dropdownWidth = $('.swh-branches-releases').width();\n $('.swh-branches-releases').width(dropdownWidth + 25);\n dropdownResized = true;\n });\n\n if (snapshotContext) {\n if (branch) {\n setBranchesTabActive();\n } else {\n setReleasesTabActive();\n }\n }\n\n });\n\n}\n","/**\n * Copyright (C) 2018-2021 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport ClipboardJS from 'clipboard';\nimport 'thirdparty/jquery.tabSlideOut/jquery.tabSlideOut';\nimport 'thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.css';\n\nimport {BREAKPOINT_SM} from 'utils/constants';\n\nexport function swhIdObjectTypeToggled(event) {\n event.preventDefault();\n $(event.target).tab('show');\n}\n\nexport function swhIdContextOptionToggled(event) {\n event.stopPropagation();\n const swhIdElt = $(event.target).closest('.swhid-ui').find('.swhid');\n const swhIdWithContext = $(event.target).data('swhid-with-context');\n const swhIdWithContextUrl = $(event.target).data('swhid-with-context-url');\n let currentSwhId = swhIdElt.text();\n if ($(event.target).prop('checked')) {\n swhIdElt.attr('href', swhIdWithContextUrl);\n currentSwhId = swhIdWithContext.replace(/;/g, ';\\n');\n } else {\n const pos = currentSwhId.indexOf(';');\n if (pos !== -1) {\n currentSwhId = currentSwhId.slice(0, pos);\n }\n swhIdElt.attr('href', '/' + currentSwhId);\n }\n swhIdElt.text(currentSwhId);\n\n addLinesInfo();\n}\n\nfunction addLinesInfo() {\n const swhIdElt = $('#swhid-tab-content').find('.swhid');\n let currentSwhId = swhIdElt.text().replace(/;\\n/g, ';');\n const lines = [];\n let linesPart = ';lines=';\n const linesRegexp = new RegExp(/L(\\d+)/g);\n let line = linesRegexp.exec(window.location.hash);\n while (line) {\n lines.push(parseInt(line[1]));\n line = linesRegexp.exec(window.location.hash);\n }\n if (lines.length > 0) {\n linesPart += lines[0];\n }\n if (lines.length > 1) {\n linesPart += '-' + lines[1];\n }\n\n if ($('#swhid-context-option-content').prop('checked')) {\n currentSwhId = currentSwhId.replace(/;lines=\\d+-*\\d*/g, '');\n if (lines.length > 0) {\n currentSwhId += linesPart;\n }\n\n swhIdElt.text(currentSwhId.replace(/;/g, ';\\n'));\n swhIdElt.attr('href', '/' + currentSwhId);\n }\n}\n\n$(document).ready(() => {\n new ClipboardJS('.btn-swhid-copy', {\n text: trigger => {\n const swhId = $(trigger).closest('.swhid-ui').find('.swhid').text();\n return swhId.replace(/;\\n/g, ';');\n }\n });\n\n new ClipboardJS('.btn-swhid-url-copy', {\n text: trigger => {\n const swhIdUrl = $(trigger).closest('.swhid-ui').find('.swhid').attr('href');\n return window.location.origin + swhIdUrl;\n }\n });\n\n if (window.innerWidth * 0.7 > 1000) {\n $('#swh-identifiers').css('width', '1000px');\n }\n\n // prevent automatic closing of SWHIDs tab during guided tour\n // as it is displayed programmatically\n function clickScreenToCloseFilter() {\n return $('.introjs-overlay').length > 0;\n }\n\n const tabSlideOptions = {\n tabLocation: 'right',\n clickScreenToCloseFilters: [clickScreenToCloseFilter, '.ui-slideouttab-panel', '.modal'],\n offset: function() {\n const width = $(window).width();\n if (width < BREAKPOINT_SM) {\n return '250px';\n } else {\n return '200px';\n }\n }\n };\n // ensure tab scrolling on small screens\n if (window.innerHeight < 600 || window.innerWidth < 500) {\n tabSlideOptions['otherOffset'] = '20px';\n }\n\n // initiate the sliding identifiers tab\n $('#swh-identifiers').tabSlideOut(tabSlideOptions);\n\n // set the tab visible once the close animation is terminated\n $('#swh-identifiers').addClass('d-none d-sm-block');\n $('.swhid-context-option').trigger('click');\n\n // highlighted code lines changed\n $(window).on('hashchange', () => {\n addLinesInfo();\n });\n\n // highlighted code lines removed\n $('body').click(() => {\n addLinesInfo();\n });\n\n});\n","/*\n tabSlideOUt v2.4\n\n Originally by William Paoli: http://code.google.com/p/tab-slide-out\n Maintained by Michael Fielding: https://github.com/hawk-ip/jquery.tabSlideOut.js\n License: GPL v3.0\n\n To use this you need an element for the tab panel content ('panel'), and inside it an element for the\n tab which will stick out from the window edge and be clickable ('handle'). By default the selector\n for handles is '.handle'.\n\n example HTML:\n\n
Click meHello World
\n\n example JavaScript (puts the tab on the right, and opens it on hover rather than click):\n\n $('#my-tab').tabSlideOut( {'tabLocation':'right','action':'hover'} );\n\n Style the tab panel and handle using CSS. Add the class ui-slideouttab-handle-rounded to handles to give them\n rounded outer corners.\n\n You can use some methods to programmatically interact with tabs. Methods except 'isOpen' are chainable.\n\n $('#my-tab').tabSlideOut('isOpen'); // return true or false\n $('#my-tab').tabSlideOut('open'); // opens it\n $('#my-tab').tabSlideOut('close'); // closes it\n $('#my-tab').tabSlideOut('toggle'); // toggles it\n $('#my-tab').tabSlideOut('bounce'); // bounces the tab\n\n You can also send JQuery events to initiate actions:\n\n $('#my-tab').trigger('open'); // opens it\n $('#my-tab').trigger('close'); // closes it\n $('#my-tab').trigger('toggle'); // toggles it\n $('#my-tab').trigger('bounce'); // bounces the tab\n\n Three events are defined and can be caught when tabs open and close:\n\n $(document).on('slideouttabopen slideouttabclose slideouttabbounce',function(event){\n var $panel = $(event.target);\n var eventType = event.type;\n // your code here\n });\n\n Features are demonstrated on the related demo page.\n*/\n(function($) {\n $.fn.tabSlideOut = function(callerSettings) {\n\n /**\n * @param node Element to get the height of.\n * @return string e.g. '123px'\n */\n function heightAsString(node) {\n return parseInt(node.outerHeight() + 1, 10) + 'px';\n }\n\n /*\n * Get the width of the given border, in pixels.\n *\n * @param node element\n * @param string edge\n * @returns int\n */\n function borderWidth(element, edge) {\n return parseInt(element.css('border-' + edge + '-width'), 10);\n }\n\n /**\n * Return the desired height of the panel to maintain both offsets.\n */\n function calculatePanelSize() {\n var available = $(window).height();\n if (edge === 'top' || edge === 'bottom') {\n available = $(window).width();\n }\n return available - parseInt(settings.otherOffset) - parseInt(settings.offset);\n }\n\n var panel = this;\n\n /**\n * True if the tab is open.\n *\n * @returns boolean\n */\n function isOpen() {\n return panel.hasClass('ui-slideouttab-open');\n }\n\n if (typeof callerSettings === 'string') {\n // param is a string, use command mode\n switch (callerSettings) {\n case 'open':\n this.trigger('open');\n return this;\n case 'close':\n this.trigger('close');\n return this;\n case 'isOpen':\n return isOpen();\n case 'toggle':\n this.trigger('toggle');\n return this;\n case 'bounce':\n this.trigger('bounce');\n return this;\n default:\n throw new Error('Invalid tabSlideOut command');\n }\n } else {\n // param is an object, it's initialisation mode\n var settings = $.extend({\n tabLocation: 'left', // left, right, top or bottom\n tabHandle: '.handle', // JQuery selector for the tab, can use any JQuery selector\n action: 'click', // action which will open the panel, e.g. 'hover'\n hoverTimeout: 5000, // ms to keep tab open after no longer hovered - only if action = 'hover'\n offset: '200px', // panel dist from top or left (bottom or right if offsetReverse is true)\n offsetReverse: false, // if true, panel is offset from right or bottom of window instead of left or top\n otherOffset: null, // if set, panel size is also set to maintain this dist from bottom or right of view port (top or left if offsetReverse)\n handleOffset: null, // e.g. '10px'. If null, detects panel border to align handle nicely on edge\n handleOffsetReverse: false, // if true, handle is offset from right or bottom of panel instead of left or top\n bounceDistance: '50px', // how far bounce event will move everything\n bounceTimes: 4, // how many bounces when 'bounce' is called\n bounceSpeed: 300, // time to animate bounces\n tabImage: null, // optional image to show in the tab\n tabImageHeight: null, // optional IE8 and lower only, else autodetected size\n tabImageWidth: null, // optional IE8 and lower only, else autodetected size\n onLoadSlideOut: false, // slide out after DOM load\n clickScreenToClose: true, // close tab when somewhere outside the tab is clicked\n clickScreenToCloseFilters: ['.ui-slideouttab-panel'], // if click target or parents match any of these, click won't close this tab\n onOpen: function() {}, // handler called after opening\n onClose: function() {} // handler called after closing\n }, callerSettings || {});\n\n var edge = settings.tabLocation;\n var handle = settings.tabHandle = $(settings.tabHandle, panel);\n\n panel.addClass('ui-slideouttab-panel')\n .addClass('ui-slideouttab-' + edge);\n if (settings.offsetReverse) {\n panel.addClass('ui-slideouttab-panel-reverse');\n }\n handle.addClass('ui-slideouttab-handle'); // need this to find it later\n if (settings.handleOffsetReverse) {\n handle.addClass('ui-slideouttab-handle-reverse');\n }\n settings.toggleButton = $(settings.toggleButton);\n\n // apply an image to the tab if one is defined\n if (settings.tabImage !== null) {\n var imageHeight = 0;\n var imageWidth = 0;\n if (settings.tabImageHeight !== null && settings.tabImageWidth !== null) {\n imageHeight = settings.tabImageHeight;\n imageWidth = settings.tabImageWidth;\n } else {\n var img = new Image();\n img.src = settings.tabImage;\n imageHeight = img.naturalHeight;\n imageWidth = img.naturalWidth;\n }\n\n handle.addClass('ui-slideouttab-handle-image');\n handle.css({\n 'background': 'url(' + settings.tabImage + ') no-repeat',\n 'width': imageWidth,\n 'height': imageHeight\n });\n }\n\n // determine whether panel and handle are positioned from top, bottom, left, or right\n if (edge === 'top' || edge === 'bottom') {\n settings.panelOffsetFrom =\n settings.offsetReverse ? 'right' : 'left';\n settings.handleOffsetFrom =\n settings.handleOffsetReverse ? 'right' : 'left';\n } else {\n settings.panelOffsetFrom =\n settings.offsetReverse ? 'bottom' : 'top';\n settings.handleOffsetFrom =\n settings.handleOffsetReverse ? 'bottom' : 'top';\n }\n\n /* autodetect the correct offset for the handle using appropriate panel border */\n if (settings.handleOffset === null) {\n settings.handleOffset = '-' + borderWidth(panel, settings.handleOffsetFrom) + 'px';\n }\n\n if (edge === 'top' || edge === 'bottom') {\n /* set left or right edges */\n panel.css(settings.panelOffsetFrom, settings.offset);\n handle.css(settings.handleOffsetFrom, settings.handleOffset);\n\n // possibly drive the panel size\n if (settings.otherOffset !== null) {\n panel.css('width', calculatePanelSize() + 'px');\n // install resize handler\n $(window).resize(function() {\n panel.css('width', calculatePanelSize() + 'px');\n });\n }\n\n if (edge === 'top') {\n handle.css({'bottom': '-' + heightAsString(handle)});\n } else {\n handle.css({'top': '-' + heightAsString(handle)});\n }\n } else {\n /* set top or bottom edge */\n panel.css(settings.panelOffsetFrom, settings.offset);\n handle.css(settings.handleOffsetFrom, settings.handleOffset);\n\n // possibly drive the panel size\n if (settings.otherOffset !== null) {\n panel.css('height', calculatePanelSize() + 'px');\n // install resize handler\n $(window).resize(function() {\n panel.css('height', calculatePanelSize() + 'px');\n });\n }\n\n if (edge === 'left') {\n handle.css({'right': '0'});\n } else {\n handle.css({'left': '0'});\n }\n }\n\n handle.click(function(event) {\n event.preventDefault();\n });\n settings.toggleButton.click(function(event) {\n event.preventDefault();\n });\n\n // now everything is set up, add the class which enables CSS tab animation\n panel.addClass('ui-slideouttab-ready');\n\n var close = function() {\n panel.removeClass('ui-slideouttab-open').trigger('slideouttabclose');\n settings.onClose();\n };\n\n var open = function() {\n panel.addClass('ui-slideouttab-open').trigger('slideouttabopen');\n settings.onOpen();\n };\n\n var toggle = function() {\n if (isOpen()) {\n close();\n } else {\n open();\n }\n };\n\n // animate the tab in and out when 'bounced'\n var moveIn = [];\n moveIn[edge] = '-=' + settings.bounceDistance;\n var moveOut = [];\n moveOut[edge] = '+=' + settings.bounceDistance;\n\n var bounceIn = function() {\n var temp = panel;\n for (var i = 0; i < settings.bounceTimes; i++) {\n temp = temp.animate(moveIn, settings.bounceSpeed)\n .animate(moveOut, settings.bounceSpeed);\n }\n panel.trigger('slideouttabbounce');\n };\n\n var bounceOut = function() {\n var temp = panel;\n for (var i = 0; i < settings.bounceTimes; i++) {\n temp = temp.animate(moveOut, settings.bounceSpeed)\n .animate(moveIn, settings.bounceSpeed);\n }\n panel.trigger('slideouttabbounce');\n };\n\n // handle clicks in rest of document to close tabs if they're open\n if (settings.clickScreenToClose) {\n // install a click handler to close tab if anywhere outside the tab is clicked,\n // that isn't filtered out by the configured filters\n $(document).click(function(event) {\n // first check the tab is open and the click isn't inside it\n if (isOpen() && !panel[0].contains(event.target)) {\n // something other than this panel was clicked\n var clicked = $(event.target);\n\n // check to see if any filters return true\n for (var i = 0; i < settings.clickScreenToCloseFilters.length; i++) {\n var filter = settings.clickScreenToCloseFilters[i];\n if (typeof filter === 'string') {\n // checked clicked element itself, and all parents\n if (clicked.is(filter) || clicked.parents().is(filter)) {\n return; // don't close the tab\n }\n } else if (typeof filter === 'function') {\n // call custom filter\n if (filter.call(panel, event)) {\n return;\n } // don't close the tab\n }\n }\n\n // we haven't returned true from any filter, so close the tab\n close();\n }\n });\n };\n\n // choose which type of action to bind\n if (settings.action === 'click') {\n handle.click(function(event) {\n toggle();\n });\n } else if (settings.action === 'hover') {\n var timer = null;\n panel.hover(\n function() {\n if (!isOpen()) {\n open();\n }\n timer = null; // eliminate the timer, ensure we don't close now\n },\n function() {\n if (isOpen() && timer === null) {\n timer = setTimeout(function() {\n if (timer) {\n close();\n }\n timer = null;\n }, settings.hoverTimeout);\n }\n });\n\n handle.click(function(event) {\n if (isOpen()) {\n close();\n }\n });\n }\n\n if (settings.onLoadSlideOut) {\n open();\n setTimeout(open, 500);\n }\n\n // custom event handlers -------\n panel.on('open', function(event) {\n if (!isOpen()) {\n open();\n }\n });\n panel.on('close', function(event) {\n if (isOpen()) {\n close();\n }\n });\n panel.on('toggle', function(event) {\n toggle();\n });\n panel.on('bounce', function(event) {\n if (isOpen()) {\n bounceIn();\n } else {\n bounceOut();\n }\n });\n\n }\n return this;\n };\n})(jQuery);\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {staticAsset} from 'utils/functions';\n\n// Constants defining Bootstrap Breakpoints\nexport const BREAKPOINT_SM = 768;\nexport const BREAKPOINT_MD = 992;\nexport const BREAKPOINT_LG = 1200;\n\nexport const swhSpinnerSrc = staticAsset('img/swh-spinner.gif');\n","/**\n * Copyright (C) 2018-2020 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// utility functions\n\nimport Cookies from 'js-cookie';\n\nexport function handleFetchError(response) {\n if (!response.ok) {\n throw response;\n }\n return response;\n}\n\nexport function handleFetchErrors(responses) {\n for (let i = 0; i < responses.length; ++i) {\n if (!responses[i].ok) {\n throw responses[i];\n }\n }\n return responses;\n}\n\nexport function errorMessageFromResponse(errorData, defaultMessage) {\n let errorMessage = '';\n try {\n const reason = JSON.parse(errorData['reason']);\n Object.entries(reason).forEach((keys, _) => {\n const key = keys[0];\n const message = keys[1][0]; // take only the first issue\n errorMessage += `\\n${key}: ${message}`;\n });\n } catch (_) {\n errorMessage = errorData['reason']; // can't parse it, leave it raw\n }\n return errorMessage ? `Error: ${errorMessage}` : defaultMessage;\n}\n\nexport function staticAsset(asset) {\n return `${__STATIC__}${asset}`;\n}\n\nexport function csrfPost(url, headers = {}, body = null) {\n headers['X-CSRFToken'] = Cookies.get('csrftoken');\n return fetch(url, {\n credentials: 'include',\n headers: headers,\n method: 'POST',\n body: body\n });\n}\n\nexport function isGitRepoUrl(url, pathPrefix = '/') {\n const allowedProtocols = ['http:', 'https:', 'git:'];\n if (allowedProtocols.find(protocol => protocol === url.protocol) === undefined) {\n return false;\n }\n if (!url.pathname.startsWith(pathPrefix)) {\n return false;\n }\n const re = new RegExp('[\\\\w\\\\.-]+\\\\/?(?!=.git)(?:\\\\.git\\\\/?)?$');\n return re.test(url.pathname.slice(pathPrefix.length));\n};\n\nexport function removeUrlFragment() {\n history.replaceState('', document.title, window.location.pathname + window.location.search);\n}\n\nexport function selectText(startNode, endNode) {\n const selection = window.getSelection();\n selection.removeAllRanges();\n const range = document.createRange();\n range.setStart(startNode, 0);\n if (endNode.nodeName !== '#text') {\n range.setEnd(endNode, endNode.childNodes.length);\n } else {\n range.setEnd(endNode, endNode.textContent.length);\n }\n selection.addRange(range);\n}\n\nexport function htmlAlert(type, message, closable = false) {\n let closeButton = '';\n let extraClasses = '';\n if (closable) {\n closeButton =\n ``;\n extraClasses = 'alert-dismissible';\n }\n return `
${message}${closeButton}
`;\n}\n\nexport function isValidURL(string) {\n try {\n new URL(string);\n } catch (_) {\n return false;\n }\n return true;\n}\n\nexport async function isArchivedOrigin(originPath) {\n if (!isValidURL(originPath)) {\n // Not a valid URL, return immediately\n return false;\n } else {\n const response = await fetch(Urls.api_1_origin(originPath));\n return response.ok && response.status === 200; // Success response represents an archived origin\n }\n}\n\nasync function getCanonicalGithubOriginURL(ownerRepo) {\n const ghApiResponse = await fetch(`https://api.github.com/repos/${ownerRepo}`);\n if (ghApiResponse.ok && ghApiResponse.status === 200) {\n const ghApiResponseData = await ghApiResponse.json();\n return ghApiResponseData.html_url;\n }\n}\n\nexport async function getCanonicalOriginURL(originUrl) {\n let originUrlLower = originUrl.toLowerCase();\n // github.com URL processing\n const ghUrlRegex = /^http[s]*:\\/\\/github.com\\//;\n if (originUrlLower.match(ghUrlRegex)) {\n // remove trailing .git\n if (originUrlLower.endsWith('.git')) {\n originUrlLower = originUrlLower.slice(0, -4);\n }\n // remove trailing slash\n if (originUrlLower.endsWith('/')) {\n originUrlLower = originUrlLower.slice(0, -1);\n }\n // extract {owner}/{repo}\n const ownerRepo = originUrlLower.replace(ghUrlRegex, '');\n // fetch canonical URL from github Web API\n const url = getCanonicalGithubOriginURL(ownerRepo);\n if (url) {\n return url;\n }\n }\n\n const ghpagesUrlRegex = /^http[s]*:\\/\\/(?[^/]+).github.io\\/(?[^/]+)\\/?.*/;\n const parsedUrl = originUrlLower.match(ghpagesUrlRegex);\n if (parsedUrl) {\n const ownerRepo = `${parsedUrl.groups.owner}/${parsedUrl.groups.repo}`;\n // fetch canonical URL from github Web API\n const url = getCanonicalGithubOriginURL(ownerRepo);\n if (url) {\n return url;\n }\n }\n\n return originUrl;\n}\n\nexport function getHumanReadableDate(data) {\n // Display iso format date string into a human readable date\n // This is expected to be used by date field in datatable listing views\n // Example: 3/24/2022, 10:31:08 AM\n const date = new Date(data);\n return date.toLocaleString();\n}\n","/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","/*! js-cookie v3.0.1 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (key, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n key = encodeURIComponent(key)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport default api;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["root","factory","exports","module","define","amd","self","initBrowseNavbar","window","location","pathname","Urls","browse_origin_visits","$","addClass","browse_origin_branches","browse_snapshot_branches","endsWith","browse_origin_releases","browse_snapshot_releases","document","ready","on","e","target","next","toggle","css","focus","blur","stopPropagation","preventDefault","popover","boundary","container","html","placement","width","BREAKPOINT_SM","template","content","this","attr","children","remove","title","offset","sanitize","currentTarget","id","hide","submit","searchParams","URLSearchParams","search","set","val","trim","toString","parents","length","linksPrev","linkNext","linkCurrent","inSearch","parseLinkHeader","s","match","fixTableRowsStyle","setTimeout","removeAttr","clearOriginSearchResultsTable","populateOriginSearchResultsTable","origins","show","table","promises","entries","i","origin","browseUrl","browse_origin","encodeURIComponent","url","tableRow","append","latestSnapshotUrl","api_1_origin_visit_latest","push","fetch","Promise","all","responses","map","r","json","responsesData","response","data","status","type","prop","text","removeClass","scrollTo","searchOriginsFirst","searchQueryText","limit","baseSearchUrl","URL","api_1_origin_metadata_search","useSearchQL","api_1_origin_search","withVisit","visitType","searchOrigins","searchUrl","handleFetchError","headers","has","undefined","parsedLink","get","errorData","errorMessageFromResponse","startsWith","resolveSWHIDUrl","api_1_resolve_swhid","browse_url","reason","isArchivedOrigin","href","initOriginSearch","event","checkValidity","withContent","searchMetadata","queryParameters","browse_search","click","hasClass","pop","urlParams","query","doSearch","initSnapshotNavigation","snapshotContext","branch","setBranchesTabActive","setReleasesTabActive","dropdownResized","dropdownWidth","swhIdObjectTypeToggled","tab","swhIdContextOptionToggled","swhIdElt","closest","find","swhIdWithContext","swhIdWithContextUrl","currentSwhId","replace","pos","indexOf","slice","addLinesInfo","lines","linesPart","linesRegexp","RegExp","line","exec","hash","parseInt","ClipboardJS","trigger","swhIdUrl","innerWidth","tabSlideOptions","tabLocation","clickScreenToCloseFilters","innerHeight","tabSlideOut","fn","callerSettings","heightAsString","node","outerHeight","calculatePanelSize","available","height","edge","settings","otherOffset","panel","isOpen","Error","extend","tabHandle","action","hoverTimeout","offsetReverse","handleOffset","handleOffsetReverse","bounceDistance","bounceTimes","bounceSpeed","tabImage","tabImageHeight","tabImageWidth","onLoadSlideOut","clickScreenToClose","onOpen","onClose","handle","toggleButton","imageHeight","imageWidth","img","Image","src","naturalHeight","naturalWidth","panelOffsetFrom","handleOffsetFrom","element","borderWidth","resize","close","open","moveIn","moveOut","contains","clicked","filter","is","call","timer","hover","temp","animate","bounceIn","bounceOut","jQuery","staticAsset","ok","defaultMessage","errorMessage","JSON","parse","Object","forEach","keys","_","key","message","asset","__STATIC__","isValidURL","string","originPath","api_1_origin","__webpack_modules__","__unused_webpack_module","__webpack_exports__","d","clipboard","tiny_emitter","tiny_emitter_default","n","listen","listen_default","src_select","select_default","command","execCommand","err","actions_cut","selectedText","fakeCopyAction","value","options","fakeElement","isRTL","documentElement","getAttribute","createElement","style","fontSize","border","padding","margin","position","yPosition","pageYOffset","scrollTop","top","concat","setAttribute","createFakeElement","appendChild","actions_copy","arguments","body","HTMLInputElement","includes","_typeof","obj","Symbol","iterator","constructor","prototype","actions_default","_options$action","nodeType","hasAttribute","clipboard_typeof","_defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","apply","_possibleConstructorReturn","ReferenceError","_assertThisInitialized","getPrototypeOf","getAttributeValue","suffix","attribute","_Emitter","subClass","superClass","TypeError","create","_inherits","Clipboard","Constructor","protoProps","staticProps","_super","_this","instance","_classCallCheck","resolveOptions","listenClick","actions","support","queryCommandSupported","defaultAction","defaultTarget","defaultText","_this2","listener","onClick","delegateTarget","emit","clearSelection","getSelection","removeAllRanges","selector","querySelector","destroy","Element","matches","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","parentNode","__unused_webpack_exports","_delegate","callback","useCapture","listenerFn","addEventListener","removeEventListener","elements","bind","querySelectorAll","Array","HTMLElement","nodeList","String","delegate","listenNode","listenNodeList","listenSelector","nodeName","isReadOnly","select","setSelectionRange","removeAttribute","selection","range","createRange","selectNodeContents","addRange","E","name","ctx","once","off","evtArr","len","evts","liveEvents","TinyEmitter","__webpack_module_cache__","moduleId","getter","__esModule","a","definition","hasOwnProperty","default","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","GenStateSuspendedStart","method","arg","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","done","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","resolve","reject","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","object","reverse","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","assign","source","init","converter","defaultAttributes","attributes","expires","now","toUTCString","decodeURIComponent","escape","stringifiedAttributes","attributeName","split","cookie","write","cookies","jar","parts","join","foundKey","read","withAttributes","withConverter","freeze","path","__webpack_require__","cachedModule"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/browse.e03893c8e18381ce9581.js b/static/js/browse.e03893c8e18381ce9581.js deleted file mode 100644 index 11f54777..00000000 --- a/static/js/browse.e03893c8e18381ce9581.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see browse.e03893c8e18381ce9581.js.LICENSE.txt */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.swh=e():(t.swh=t.swh||{},t.swh.browse=e())}(self,(function(){return function(){var t={87757:function(t,e,n){t.exports=n(35666)},70103:function(t,e,n){"use strict";n.d(e,{E:function(){return o}});var r=n(86515);function o(){window.location.pathname===Urls.browse_origin_visits()?$("#swh-browse-origin-visits-nav-link").addClass("active"):window.location.pathname===Urls.browse_origin_branches()||window.location.pathname===Urls.browse_snapshot_branches()||window.location.pathname.endsWith("branches/")?$("#swh-browse-snapshot-branches-nav-link").addClass("active"):window.location.pathname===Urls.browse_origin_releases()||window.location.pathname===Urls.browse_snapshot_releases()||window.location.pathname.endsWith("releases/")?$("#swh-browse-snapshot-releases-nav-link").addClass("active"):$("#swh-browse-code-nav-link").addClass("active")}$(document).ready((function(){$(".dropdown-submenu a.dropdown-item").on("click",(function(t){$(t.target).next("div").toggle(),"none"!==$(t.target).next("div").css("display")?$(t.target).focus():$(t.target).blur(),t.stopPropagation(),t.preventDefault()})),$(".swh-popover-toggler").popover({boundary:"viewport",container:"body",html:!0,placement:function(){return $(window).width()\n
\n

\n
\n ',content:function(){var t=$(this).attr("data-popover-content");return $(t).children(".popover-body").remove().html()},title:function(){var t=$(this).attr("data-popover-content");return $(t).children(".popover-heading").html()},offset:"50vh",sanitize:!1}),$(".swh-vault-menu a.dropdown-item").on("click",(function(t){$(".swh-popover-toggler").popover("hide")})),$(".swh-popover-toggler").on("show.bs.popover",(function(t){$(".swh-popover-toggler:not(#"+t.currentTarget.id+")").popover("hide"),$(".swh-vault-menu .dropdown-menu").hide()})),$(".swh-actions-dropdown").on("hide.bs.dropdown",(function(){$(".swh-vault-menu .dropdown-menu").hide(),$(".swh-popover-toggler").popover("hide")})),$("#swh-branch-search-form").submit((function(t){var e=new URLSearchParams(window.location.search);e.set("name_include",$("#swh-branch-search-string").val().trim()),window.location.search=e.toString(),t.preventDefault()})),$("body").on("click",(function(t){$(t.target).parents(".swh-popover").length&&t.stopPropagation()}))}))},84664:function(t,e,n){"use strict";n.d(e,{A:function(){return k}});var r=n(15861),o=n(87757),i=n.n(o),a=n(59537);function s(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(n)return(n=n.call(t)).next.bind(n);if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return c(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0;return function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n; rel="next"/)[1]}function p(){setTimeout((function(){$("#origin-search-results tbody tr").removeAttr("style")}))}function v(){$("#origin-search-results tbody tr").remove()}function g(t){return w.apply(this,arguments)}function w(){return(w=(0,r.Z)(i().mark((function t(e){var n,r,o,a,c,f,d,g,w,y,m,b,x,k,S;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!(e.length>0)){t.next=17;break}for($("#swh-origin-search-results").show(),$("#swh-no-result").hide(),v(),n=$("#origin-search-results tbody"),r=[],o=s(e.entries());!(a=o()).done;)c=a.value,f=c[0],d=c[1],g=Urls.browse_origin()+"?origin_url="+encodeURIComponent(d.url),w='',w+='Checking',w+=''+d.url+"",w+='Checking',w+="",n.append(w),y=Urls.api_1_origin_visit_latest(d.url),y+="?require_snapshot=true",r.push(fetch(y));return t.next=9,Promise.all(r);case 9:return m=t.sent,t.next=12,Promise.all(m.map((function(t){return t.json()})));case 12:for(b=t.sent,x=0;xArchived')):($("#visit-type-origin-"+x).html("unknown"),$("#visit-status-origin-"+x).html('Pending archival'),$("#swh-filter-empty-visits").prop("checked")&&$("#origin-"+x).remove());p(),t.next=20;break;case 17:$("#swh-origin-search-results").hide(),$("#swh-no-result").text("No origins matching the search criteria were found."),$("#swh-no-result").show();case 20:null===l?$("#origins-next-results-button").addClass("disabled"):$("#origins-next-results-button").removeClass("disabled"),0===u.length?$("#origins-prev-results-button").addClass("disabled"):$("#origins-prev-results-button").removeClass("disabled"),h=!1,setTimeout((function(){window.scrollTo(0,0)}));case 24:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function y(t,e){var n;if($("#swh-search-origin-metadata").prop("checked"))(n=new URL(Urls.api_1_origin_metadata_search(),window.location)).searchParams.append("fulltext",t);else{var r=$("#swh-search-use-ql").prop("checked");(n=new URL(Urls.api_1_origin_search(t),window.location)).searchParams.append("use_ql",null!=r&&r)}var o=$("#swh-search-origins-with-visit").prop("checked");n.searchParams.append("limit",e),n.searchParams.append("with_visit",o);var i=$("#swh-search-visit-type").val();"any"!==i&&n.searchParams.append("visit_type",i),m(n.toString())}function m(t){return b.apply(this,arguments)}function b(){return(b=(0,r.Z)(i().mark((function t(e){var n,r,o,s;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return v(),$(".swh-loading").addClass("show"),t.prev=2,t.next=5,fetch(e);case 5:return n=t.sent,(0,a.ry)(n),t.next=9,n.json();case 9:r=t.sent,f=e,l=null,n.headers.has("Link")&&void 0!==(o=d(n.headers.get("Link")))&&(l=o),$(".swh-loading").removeClass("show"),g(r),t.next=27;break;case 17:return t.prev=17,t.t0=t.catch(2),t.next=21,t.t0.json();case 21:s=t.sent,$(".swh-loading").removeClass("show"),h=!1,$("#swh-origin-search-results").hide(),$("#swh-no-result").text((0,a.DK)(s,"An unknown error occurred while searching origins")),$("#swh-no-result").show();case 27:case"end":return t.stop()}}),t,null,[[2,17]])})))).apply(this,arguments)}function x(){return(x=(0,r.Z)(i().mark((function t(){var e,n,r,o,s;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if($("#swh-no-result").hide(),e=$("#swh-origins-url-patterns").val(),h=!0,!e.startsWith("swh:")){t.next=27;break}return t.prev=4,n=Urls.api_1_resolve_swhid(e),t.next=8,fetch(n);case 8:return r=t.sent,(0,a.ry)(r),t.next=12,r.json();case 12:o=t.sent,window.location=o.browse_url,t.next=25;break;case 16:return t.prev=16,t.t0=t.catch(4),t.next=20,t.t0.json();case 20:s=t.sent,$("#swh-origin-search-results").hide(),$(".swh-search-pagination").hide(),$("#swh-no-result").text(s.reason),$("#swh-no-result").show();case 25:t.next=36;break;case 27:return t.next=29,(0,a.Sv)(e);case 29:if(!t.sent){t.next=33;break}window.location.href=Urls.browse_origin()+"?origin_url="+encodeURIComponent(e),t.next=36;break;case 33:$("#swh-origin-search-results").show(),$(".swh-search-pagination").show(),y(e,100);case 36:case"end":return t.stop()}}),t,null,[[4,16]])})))).apply(this,arguments)}function k(){$(document).ready((function(){$("#swh-search-origins").submit((function(t){if(t.preventDefault(),t.target.checkValidity()){$(t.target).removeClass("was-validated");var e=$("#swh-origins-url-patterns").val().trim(),n=$("#swh-search-origins-with-visit").prop("checked"),r=$("#swh-filter-empty-visits").prop("checked"),o=$("#swh-search-use-ql").prop("checked"),i=$("#swh-search-origin-metadata").prop("checked"),a=$("#swh-search-visit-type").val(),s=new URLSearchParams;s.append("q",e),n&&s.append("with_visit",n),r&&s.append("with_content",r),o&&s.append("use_ql",null!=o&&o),i&&s.append("search_metadata",i),"any"!==a&&s.append("visit_type",a),window.location=Urls.browse_search()+"?"+s.toString()}else $(t.target).addClass("was-validated")})),$("#origins-next-results-button").click((function(t){$("#origins-next-results-button").hasClass("disabled")||h||(h=!0,u.push(f),m(l),t.preventDefault())})),$("#origins-prev-results-button").click((function(t){$("#origins-prev-results-button").hasClass("disabled")||h||(h=!0,m(u.pop()),t.preventDefault())}));var t=new URLSearchParams(window.location.search),e=t.get("q"),n=t.has("with_visit"),r=t.has("use_ql"),o=t.has("with_content"),i=t.has("search_metadata"),a=t.get("visit_type");e&&($("#swh-origins-url-patterns").val(e),$("#swh-search-origins-with-visit").prop("checked",n),$("#swh-search-use-ql").prop("checked",null!=r&&r),$("#swh-filter-empty-visits").prop("checked",o),$("#swh-search-origin-metadata").prop("checked",i),a&&$("#swh-search-visit-type").val(a),function(){x.apply(this,arguments)}())}))}},71523:function(t,e,n){"use strict";function r(t,e){function n(){$(".swh-releases-switch").removeClass("active"),$(".swh-branches-switch").addClass("active"),$("#swh-tab-releases").removeClass("active"),$("#swh-tab-branches").addClass("active")}function r(){$(".swh-branches-switch").removeClass("active"),$(".swh-releases-switch").addClass("active"),$("#swh-tab-branches").removeClass("active"),$("#swh-tab-releases").addClass("active")}$(document).ready((function(){$(".dropdown-menu a.swh-branches-switch").click((function(t){n(),t.stopPropagation()})),$(".dropdown-menu a.swh-releases-switch").click((function(t){r(),t.stopPropagation()}));var o=!1;$("#swh-branches-releases-dd").on("show.bs.dropdown",(function(){if(!o){var t=$(".swh-branches-releases").width();$(".swh-branches-releases").width(t+25),o=!0}})),t&&(e?n():r())}))}n.d(e,{a:function(){return r}})},32218:function(t,e,n){"use strict";n.d(e,{Z:function(){return a},_:function(){return s}});var r=n(42152),o=n.n(r),i=(n(14547),n(86515));function a(t){t.preventDefault(),$(t.target).tab("show")}function s(t){t.stopPropagation();var e=$(t.target).closest(".swhid-ui").find(".swhid"),n=$(t.target).data("swhid-with-context"),r=$(t.target).data("swhid-with-context-url"),o=e.text();if($(t.target).prop("checked"))e.attr("href",r),o=n.replace(/;/g,";\n");else{var i=o.indexOf(";");-1!==i&&(o=o.slice(0,i)),e.attr("href","/"+o)}e.text(o),c()}function c(){for(var t=$("#swhid-tab-content").find(".swhid"),e=t.text().replace(/;\n/g,";"),n=[],r=";lines=",o=new RegExp(/L(\d+)/g),i=o.exec(window.location.hash);i;)n.push(parseInt(i[1])),i=o.exec(window.location.hash);n.length>0&&(r+=n[0]),n.length>1&&(r+="-"+n[1]),$("#swhid-context-option-content").prop("checked")&&(e=e.replace(/;lines=\d+-*\d*/g,""),n.length>0&&(e+=r),t.text(e.replace(/;/g,";\n")),t.attr("href","/"+e))}$(document).ready((function(){new(o())(".btn-swhid-copy",{text:function(t){return $(t).closest(".swhid-ui").find(".swhid").text().replace(/;\n/g,";")}}),new(o())(".btn-swhid-url-copy",{text:function(t){var e=$(t).closest(".swhid-ui").find(".swhid").attr("href");return window.location.origin+e}}),.7*window.innerWidth>1e3&&$("#swh-identifiers").css("width","1000px");var t={tabLocation:"right",clickScreenToCloseFilters:[function(){return $(".introjs-overlay").length>0},".ui-slideouttab-panel",".modal"],offset:function(){return $(window).width()1&&void 0!==arguments[1]?arguments[1]:{container:document.body},n="";return"string"==typeof t?n=f(t,e):t instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(null==t?void 0:t.type)?n=f(t.value,e):(n=c()(t),u("copy")),n};function d(t){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var p=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.action,n=void 0===e?"copy":e,r=t.container,o=t.target,i=t.text;if("copy"!==n&&"cut"!==n)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==o){if(!o||"object"!==d(o)||1!==o.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===n&&o.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===n&&(o.hasAttribute("readonly")||o.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return i?h(i,{container:r}):o?"cut"===n?l(o):h(o,{container:r}):void 0};function v(t){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function g(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{container:document.body};return h(t,e)}},{key:"cut",value:function(t){return l(t)}},{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach((function(t){n=n&&!!document.queryCommandSupported(t)})),n}}],(n=[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===v(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=a()(t,"click",(function(t){return e.onClick(t)}))}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget,n=this.action(e)||"copy",r=p({action:n,container:this.container,target:this.target(e),text:this.text(e)});this.emit(r?"success":"error",{action:n,text:r,trigger:e,clearSelection:function(){e&&e.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(t){return x("action",t)}},{key:"defaultTarget",value:function(t){var e=x("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return x("text",t)}},{key:"destroy",value:function(){this.listener.destroy()}}])&&g(e.prototype,n),r&&g(e,r),i}(o())},828:function(t){if("undefined"!=typeof Element&&!Element.prototype.matches){var e=Element.prototype;e.matches=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector}t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}},438:function(t,e,n){var r=n(828);function o(t,e,n,r,o){var a=i.apply(this,arguments);return t.addEventListener(n,a,o),{destroy:function(){t.removeEventListener(n,a,o)}}}function i(t,e,n,o){return function(n){n.delegateTarget=r(n.target,e),n.delegateTarget&&o.call(t,n)}}t.exports=function(t,e,n,r,i){return"function"==typeof t.addEventListener?o.apply(null,arguments):"function"==typeof n?o.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,(function(t){return o(t,e,n,r,i)})))}},879:function(t,e){e.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},e.nodeList=function(t){var n=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in t&&(0===t.length||e.node(t[0]))},e.string=function(t){return"string"==typeof t||t instanceof String},e.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},370:function(t,e,n){var r=n(879),o=n(438);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!r.string(e))throw new TypeError("Second argument must be a String");if(!r.fn(n))throw new TypeError("Third argument must be a Function");if(r.node(t))return function(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}(t,e,n);if(r.nodeList(t))return function(t,e,n){return Array.prototype.forEach.call(t,(function(t){t.addEventListener(e,n)})),{destroy:function(){Array.prototype.forEach.call(t,(function(t){t.removeEventListener(e,n)}))}}}(t,e,n);if(r.string(t))return function(t,e,n){return o(document.body,t,e,n)}(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},817:function(t){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var r=window.getSelection(),o=document.createRange();o.selectNodeContents(t),r.removeAllRanges(),r.addRange(o),e=r.toString()}return e}},279:function(t){function e(){}e.prototype={on:function(t,e,n){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var r=this;function o(){r.off(t,o),e.apply(n,arguments)}return o._=e,this.on(t,o,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),r=0,o=n.length;r=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var c=r.call(a,"catchLoc"),u=r.call(a,"finallyLoc");if(c&&u){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),C(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;C(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:T(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}},15861:function(t,e,n){"use strict";function r(t,e,n,r,o,i,a){try{var s=t[i](a),c=s.value}catch(t){return void n(t)}s.done?e(c):Promise.resolve(c).then(r,o)}function o(t){return function(){var e=this,n=arguments;return new Promise((function(o,i){var a=t.apply(e,n);function s(t){r(a,o,i,s,c,"next",t)}function c(t){r(a,o,i,s,c,"throw",t)}s(void 0)}))}}n.d(e,{Z:function(){return o}})},31955:function(){"use strict";function t(t){for(var e=1;e {\n\n $('.dropdown-submenu a.dropdown-item').on('click', e => {\n $(e.target).next('div').toggle();\n if ($(e.target).next('div').css('display') !== 'none') {\n $(e.target).focus();\n } else {\n $(e.target).blur();\n }\n e.stopPropagation();\n e.preventDefault();\n });\n\n $('.swh-popover-toggler').popover({\n boundary: 'viewport',\n container: 'body',\n html: true,\n placement: function() {\n const width = $(window).width();\n if (width < BREAKPOINT_SM) {\n return 'top';\n } else {\n return 'right';\n }\n },\n template: `
\n
\n

\n
\n
`,\n content: function() {\n var content = $(this).attr('data-popover-content');\n return $(content).children('.popover-body').remove().html();\n },\n title: function() {\n var title = $(this).attr('data-popover-content');\n return $(title).children('.popover-heading').html();\n },\n offset: '50vh',\n sanitize: false\n });\n\n $('.swh-vault-menu a.dropdown-item').on('click', e => {\n $('.swh-popover-toggler').popover('hide');\n });\n\n $('.swh-popover-toggler').on('show.bs.popover', (e) => {\n $(`.swh-popover-toggler:not(#${e.currentTarget.id})`).popover('hide');\n $('.swh-vault-menu .dropdown-menu').hide();\n });\n\n $('.swh-actions-dropdown').on('hide.bs.dropdown', () => {\n $('.swh-vault-menu .dropdown-menu').hide();\n $('.swh-popover-toggler').popover('hide');\n });\n\n $('#swh-branch-search-form').submit(function(e) {\n var searchParams = new URLSearchParams(window.location.search);\n searchParams.set('name_include',\n $('#swh-branch-search-string').val().trim());\n window.location.search = searchParams.toString();\n e.preventDefault();\n });\n\n $('body').on('click', e => {\n if ($(e.target).parents('.swh-popover').length) {\n e.stopPropagation();\n }\n });\n\n});\n\nexport function initBrowseNavbar() {\n if (window.location.pathname === Urls.browse_origin_visits()) {\n $('#swh-browse-origin-visits-nav-link').addClass('active');\n } else if (window.location.pathname === Urls.browse_origin_branches() ||\n window.location.pathname === Urls.browse_snapshot_branches() ||\n window.location.pathname.endsWith('branches/')) {\n $('#swh-browse-snapshot-branches-nav-link').addClass('active');\n } else if (window.location.pathname === Urls.browse_origin_releases() ||\n window.location.pathname === Urls.browse_snapshot_releases() ||\n window.location.pathname.endsWith('releases/')) {\n $('#swh-browse-snapshot-releases-nav-link').addClass('active');\n } else {\n $('#swh-browse-code-nav-link').addClass('active');\n }\n}\n","/**\n * Copyright (C) 2018-2021 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {handleFetchError, errorMessageFromResponse, isArchivedOrigin} from 'utils/functions';\n\nconst limit = 100;\nconst linksPrev = [];\nlet linkNext = null;\nlet linkCurrent = null;\nlet inSearch = false;\n\nfunction parseLinkHeader(s) {\n const re = /<(.+)>; rel=\"next\"/;\n return s.match(re)[1];\n}\n\nfunction fixTableRowsStyle() {\n setTimeout(() => {\n $('#origin-search-results tbody tr').removeAttr('style');\n });\n}\n\nfunction clearOriginSearchResultsTable() {\n $('#origin-search-results tbody tr').remove();\n}\n\nasync function populateOriginSearchResultsTable(origins) {\n if (origins.length > 0) {\n $('#swh-origin-search-results').show();\n $('#swh-no-result').hide();\n clearOriginSearchResultsTable();\n const table = $('#origin-search-results tbody');\n const promises = [];\n for (const [i, origin] of origins.entries()) {\n const browseUrl = `${Urls.browse_origin()}?origin_url=${encodeURIComponent(origin.url)}`;\n let tableRow =\n ``;\n tableRow +=\n `` +\n '' +\n 'Checking';\n tableRow +=\n '' +\n `${origin.url}`;\n tableRow +=\n `` +\n '' +\n 'Checking';\n tableRow += '';\n table.append(tableRow);\n // get async latest visit snapshot and update visit status icon\n let latestSnapshotUrl = Urls.api_1_origin_visit_latest(origin.url);\n latestSnapshotUrl += '?require_snapshot=true';\n promises.push(fetch(latestSnapshotUrl));\n }\n const responses = await Promise.all(promises);\n const responsesData = await Promise.all(responses.map(r => r.json()));\n for (let i = 0; i < responses.length; ++i) {\n const response = responses[i];\n const data = responsesData[i];\n if (response.status !== 404 && data.type) {\n $(`#visit-type-origin-${i}`).html(data.type);\n $(`#visit-status-origin-${i}`).html(\n 'Archived');\n } else {\n $(`#visit-type-origin-${i}`).html('unknown');\n $(`#visit-status-origin-${i}`).html(\n 'Pending archival');\n if ($('#swh-filter-empty-visits').prop('checked')) {\n $(`#origin-${i}`).remove();\n }\n }\n }\n fixTableRowsStyle();\n } else {\n $('#swh-origin-search-results').hide();\n $('#swh-no-result').text('No origins matching the search criteria were found.');\n $('#swh-no-result').show();\n }\n\n if (linkNext === null) {\n $('#origins-next-results-button').addClass('disabled');\n } else {\n $('#origins-next-results-button').removeClass('disabled');\n }\n\n if (linksPrev.length === 0) {\n $('#origins-prev-results-button').addClass('disabled');\n } else {\n $('#origins-prev-results-button').removeClass('disabled');\n }\n\n inSearch = false;\n setTimeout(() => {\n window.scrollTo(0, 0);\n });\n}\n\nfunction searchOriginsFirst(searchQueryText, limit) {\n let baseSearchUrl;\n const searchMetadata = $('#swh-search-origin-metadata').prop('checked');\n if (searchMetadata) {\n baseSearchUrl = new URL(Urls.api_1_origin_metadata_search(), window.location);\n baseSearchUrl.searchParams.append('fulltext', searchQueryText);\n } else {\n const useSearchQL = $('#swh-search-use-ql').prop('checked');\n baseSearchUrl = new URL(Urls.api_1_origin_search(searchQueryText), window.location);\n baseSearchUrl.searchParams.append('use_ql', useSearchQL ?? false);\n }\n\n const withVisit = $('#swh-search-origins-with-visit').prop('checked');\n baseSearchUrl.searchParams.append('limit', limit);\n baseSearchUrl.searchParams.append('with_visit', withVisit);\n const visitType = $('#swh-search-visit-type').val();\n if (visitType !== 'any') {\n baseSearchUrl.searchParams.append('visit_type', visitType);\n }\n const searchUrl = baseSearchUrl.toString();\n searchOrigins(searchUrl);\n}\n\nasync function searchOrigins(searchUrl) {\n clearOriginSearchResultsTable();\n $('.swh-loading').addClass('show');\n try {\n const response = await fetch(searchUrl);\n handleFetchError(response);\n const data = await response.json();\n // Save link to the current results page\n linkCurrent = searchUrl;\n // Save link to the next results page.\n linkNext = null;\n if (response.headers.has('Link')) {\n const parsedLink = parseLinkHeader(response.headers.get('Link'));\n if (parsedLink !== undefined) {\n linkNext = parsedLink;\n }\n }\n // prevLinks is updated by the caller, which is the one to know if\n // we're going forward or backward in the pages.\n\n $('.swh-loading').removeClass('show');\n populateOriginSearchResultsTable(data);\n } catch (errorResponse) {\n const errorData = await errorResponse.json();\n $('.swh-loading').removeClass('show');\n inSearch = false;\n $('#swh-origin-search-results').hide();\n $('#swh-no-result').text(errorMessageFromResponse(\n errorData, 'An unknown error occurred while searching origins'));\n $('#swh-no-result').show();\n }\n}\n\nasync function doSearch() {\n $('#swh-no-result').hide();\n const searchQueryText = $('#swh-origins-url-patterns').val();\n inSearch = true;\n if (searchQueryText.startsWith('swh:')) {\n try {\n // searchQueryText may be a PID so sending search queries to PID resolve endpoint\n const resolveSWHIDUrl = Urls.api_1_resolve_swhid(searchQueryText);\n const response = await fetch(resolveSWHIDUrl);\n handleFetchError(response);\n const data = await response.json();\n // SWHID has been successfully resolved,\n // so redirect to browse page\n window.location = data.browse_url;\n } catch (response) {\n // display a useful error message if the input\n // looks like a SWHID\n const data = await response.json();\n $('#swh-origin-search-results').hide();\n $('.swh-search-pagination').hide();\n $('#swh-no-result').text(data.reason);\n $('#swh-no-result').show();\n }\n } else if (await isArchivedOrigin(searchQueryText)) {\n // redirect to the browse origin\n window.location.href =\n `${Urls.browse_origin()}?origin_url=${encodeURIComponent(searchQueryText)}`;\n } else {\n // otherwise, proceed with origins search irrespective of the error\n $('#swh-origin-search-results').show();\n $('.swh-search-pagination').show();\n searchOriginsFirst(searchQueryText, limit);\n }\n}\n\nexport function initOriginSearch() {\n $(document).ready(() => {\n $('#swh-search-origins').submit(event => {\n event.preventDefault();\n if (event.target.checkValidity()) {\n $(event.target).removeClass('was-validated');\n const searchQueryText = $('#swh-origins-url-patterns').val().trim();\n const withVisit = $('#swh-search-origins-with-visit').prop('checked');\n const withContent = $('#swh-filter-empty-visits').prop('checked');\n const useSearchQL = $('#swh-search-use-ql').prop('checked');\n const searchMetadata = $('#swh-search-origin-metadata').prop('checked');\n const visitType = $('#swh-search-visit-type').val();\n const queryParameters = new URLSearchParams();\n queryParameters.append('q', searchQueryText);\n if (withVisit) {\n queryParameters.append('with_visit', withVisit);\n }\n if (withContent) {\n queryParameters.append('with_content', withContent);\n }\n if (useSearchQL) {\n queryParameters.append('use_ql', useSearchQL ?? false);\n }\n if (searchMetadata) {\n queryParameters.append('search_metadata', searchMetadata);\n }\n if (visitType !== 'any') {\n queryParameters.append('visit_type', visitType);\n }\n // Update the url, triggering page reload and effective search\n window.location = `${Urls.browse_search()}?${queryParameters.toString()}`;\n } else {\n $(event.target).addClass('was-validated');\n }\n });\n\n $('#origins-next-results-button').click(event => {\n if ($('#origins-next-results-button').hasClass('disabled') || inSearch) {\n return;\n }\n inSearch = true;\n linksPrev.push(linkCurrent);\n searchOrigins(linkNext);\n event.preventDefault();\n });\n\n $('#origins-prev-results-button').click(event => {\n if ($('#origins-prev-results-button').hasClass('disabled') || inSearch) {\n return;\n }\n inSearch = true;\n searchOrigins(linksPrev.pop());\n event.preventDefault();\n });\n\n const urlParams = new URLSearchParams(window.location.search);\n const query = urlParams.get('q');\n const withVisit = urlParams.has('with_visit');\n const useSearchQL = urlParams.has('use_ql');\n const withContent = urlParams.has('with_content');\n const searchMetadata = urlParams.has('search_metadata');\n const visitType = urlParams.get('visit_type');\n if (query) {\n $('#swh-origins-url-patterns').val(query);\n $('#swh-search-origins-with-visit').prop('checked', withVisit);\n $('#swh-search-use-ql').prop('checked', useSearchQL ?? false);\n $('#swh-filter-empty-visits').prop('checked', withContent);\n $('#swh-search-origin-metadata').prop('checked', searchMetadata);\n if (visitType) {\n $('#swh-search-visit-type').val(visitType);\n }\n doSearch();\n }\n });\n}\n","/**\n * Copyright (C) 2018 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nexport function initSnapshotNavigation(snapshotContext, branch) {\n\n function setBranchesTabActive() {\n $('.swh-releases-switch').removeClass('active');\n $('.swh-branches-switch').addClass('active');\n $('#swh-tab-releases').removeClass('active');\n $('#swh-tab-branches').addClass('active');\n }\n\n function setReleasesTabActive() {\n $('.swh-branches-switch').removeClass('active');\n $('.swh-releases-switch').addClass('active');\n $('#swh-tab-branches').removeClass('active');\n $('#swh-tab-releases').addClass('active');\n }\n\n $(document).ready(() => {\n $('.dropdown-menu a.swh-branches-switch').click(e => {\n setBranchesTabActive();\n e.stopPropagation();\n });\n\n $('.dropdown-menu a.swh-releases-switch').click(e => {\n setReleasesTabActive();\n e.stopPropagation();\n });\n\n let dropdownResized = false;\n\n // hack to resize the branches/releases dropdown content,\n // taking icons into account, in order to make the whole names readable\n $('#swh-branches-releases-dd').on('show.bs.dropdown', () => {\n if (dropdownResized) return;\n const dropdownWidth = $('.swh-branches-releases').width();\n $('.swh-branches-releases').width(dropdownWidth + 25);\n dropdownResized = true;\n });\n\n if (snapshotContext) {\n if (branch) {\n setBranchesTabActive();\n } else {\n setReleasesTabActive();\n }\n }\n\n });\n\n}\n","/**\n * Copyright (C) 2018-2021 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport ClipboardJS from 'clipboard';\nimport 'thirdparty/jquery.tabSlideOut/jquery.tabSlideOut';\nimport 'thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.css';\n\nimport {BREAKPOINT_SM} from 'utils/constants';\n\nexport function swhIdObjectTypeToggled(event) {\n event.preventDefault();\n $(event.target).tab('show');\n}\n\nexport function swhIdContextOptionToggled(event) {\n event.stopPropagation();\n const swhIdElt = $(event.target).closest('.swhid-ui').find('.swhid');\n const swhIdWithContext = $(event.target).data('swhid-with-context');\n const swhIdWithContextUrl = $(event.target).data('swhid-with-context-url');\n let currentSwhId = swhIdElt.text();\n if ($(event.target).prop('checked')) {\n swhIdElt.attr('href', swhIdWithContextUrl);\n currentSwhId = swhIdWithContext.replace(/;/g, ';\\n');\n } else {\n const pos = currentSwhId.indexOf(';');\n if (pos !== -1) {\n currentSwhId = currentSwhId.slice(0, pos);\n }\n swhIdElt.attr('href', '/' + currentSwhId);\n }\n swhIdElt.text(currentSwhId);\n\n addLinesInfo();\n}\n\nfunction addLinesInfo() {\n const swhIdElt = $('#swhid-tab-content').find('.swhid');\n let currentSwhId = swhIdElt.text().replace(/;\\n/g, ';');\n const lines = [];\n let linesPart = ';lines=';\n const linesRegexp = new RegExp(/L(\\d+)/g);\n let line = linesRegexp.exec(window.location.hash);\n while (line) {\n lines.push(parseInt(line[1]));\n line = linesRegexp.exec(window.location.hash);\n }\n if (lines.length > 0) {\n linesPart += lines[0];\n }\n if (lines.length > 1) {\n linesPart += '-' + lines[1];\n }\n\n if ($('#swhid-context-option-content').prop('checked')) {\n currentSwhId = currentSwhId.replace(/;lines=\\d+-*\\d*/g, '');\n if (lines.length > 0) {\n currentSwhId += linesPart;\n }\n\n swhIdElt.text(currentSwhId.replace(/;/g, ';\\n'));\n swhIdElt.attr('href', '/' + currentSwhId);\n }\n}\n\n$(document).ready(() => {\n new ClipboardJS('.btn-swhid-copy', {\n text: trigger => {\n const swhId = $(trigger).closest('.swhid-ui').find('.swhid').text();\n return swhId.replace(/;\\n/g, ';');\n }\n });\n\n new ClipboardJS('.btn-swhid-url-copy', {\n text: trigger => {\n const swhIdUrl = $(trigger).closest('.swhid-ui').find('.swhid').attr('href');\n return window.location.origin + swhIdUrl;\n }\n });\n\n if (window.innerWidth * 0.7 > 1000) {\n $('#swh-identifiers').css('width', '1000px');\n }\n\n // prevent automatic closing of SWHIDs tab during guided tour\n // as it is displayed programmatically\n function clickScreenToCloseFilter() {\n return $('.introjs-overlay').length > 0;\n }\n\n const tabSlideOptions = {\n tabLocation: 'right',\n clickScreenToCloseFilters: [clickScreenToCloseFilter, '.ui-slideouttab-panel', '.modal'],\n offset: function() {\n const width = $(window).width();\n if (width < BREAKPOINT_SM) {\n return '250px';\n } else {\n return '200px';\n }\n }\n };\n // ensure tab scrolling on small screens\n if (window.innerHeight < 600 || window.innerWidth < 500) {\n tabSlideOptions['otherOffset'] = '20px';\n }\n\n // initiate the sliding identifiers tab\n $('#swh-identifiers').tabSlideOut(tabSlideOptions);\n\n // set the tab visible once the close animation is terminated\n $('#swh-identifiers').addClass('d-none d-sm-block');\n $('.swhid-context-option').trigger('click');\n\n // highlighted code lines changed\n $(window).on('hashchange', () => {\n addLinesInfo();\n });\n\n // highlighted code lines removed\n $('body').click(() => {\n addLinesInfo();\n });\n\n});\n","/*\n tabSlideOUt v2.4\n\n Originally by William Paoli: http://code.google.com/p/tab-slide-out\n Maintained by Michael Fielding: https://github.com/hawk-ip/jquery.tabSlideOut.js\n License: GPL v3.0\n\n To use this you need an element for the tab panel content ('panel'), and inside it an element for the\n tab which will stick out from the window edge and be clickable ('handle'). By default the selector\n for handles is '.handle'.\n\n example HTML:\n\n
Click meHello World
\n\n example JavaScript (puts the tab on the right, and opens it on hover rather than click):\n\n $('#my-tab').tabSlideOut( {'tabLocation':'right','action':'hover'} );\n\n Style the tab panel and handle using CSS. Add the class ui-slideouttab-handle-rounded to handles to give them\n rounded outer corners.\n\n You can use some methods to programmatically interact with tabs. Methods except 'isOpen' are chainable.\n\n $('#my-tab').tabSlideOut('isOpen'); // return true or false\n $('#my-tab').tabSlideOut('open'); // opens it\n $('#my-tab').tabSlideOut('close'); // closes it\n $('#my-tab').tabSlideOut('toggle'); // toggles it\n $('#my-tab').tabSlideOut('bounce'); // bounces the tab\n\n You can also send JQuery events to initiate actions:\n\n $('#my-tab').trigger('open'); // opens it\n $('#my-tab').trigger('close'); // closes it\n $('#my-tab').trigger('toggle'); // toggles it\n $('#my-tab').trigger('bounce'); // bounces the tab\n\n Three events are defined and can be caught when tabs open and close:\n\n $(document).on('slideouttabopen slideouttabclose slideouttabbounce',function(event){\n var $panel = $(event.target);\n var eventType = event.type;\n // your code here\n });\n\n Features are demonstrated on the related demo page.\n*/\n(function($) {\n $.fn.tabSlideOut = function(callerSettings) {\n\n /**\n * @param node Element to get the height of.\n * @return string e.g. '123px'\n */\n function heightAsString(node) {\n return parseInt(node.outerHeight() + 1, 10) + 'px';\n }\n\n /*\n * Get the width of the given border, in pixels.\n *\n * @param node element\n * @param string edge\n * @returns int\n */\n function borderWidth(element, edge) {\n return parseInt(element.css('border-' + edge + '-width'), 10);\n }\n\n /**\n * Return the desired height of the panel to maintain both offsets.\n */\n function calculatePanelSize() {\n var available = $(window).height();\n if (edge === 'top' || edge === 'bottom') {\n available = $(window).width();\n }\n return available - parseInt(settings.otherOffset) - parseInt(settings.offset);\n }\n\n var panel = this;\n\n /**\n * True if the tab is open.\n *\n * @returns boolean\n */\n function isOpen() {\n return panel.hasClass('ui-slideouttab-open');\n }\n\n if (typeof callerSettings === 'string') {\n // param is a string, use command mode\n switch (callerSettings) {\n case 'open':\n this.trigger('open');\n return this;\n case 'close':\n this.trigger('close');\n return this;\n case 'isOpen':\n return isOpen();\n case 'toggle':\n this.trigger('toggle');\n return this;\n case 'bounce':\n this.trigger('bounce');\n return this;\n default:\n throw new Error('Invalid tabSlideOut command');\n }\n } else {\n // param is an object, it's initialisation mode\n var settings = $.extend({\n tabLocation: 'left', // left, right, top or bottom\n tabHandle: '.handle', // JQuery selector for the tab, can use any JQuery selector\n action: 'click', // action which will open the panel, e.g. 'hover'\n hoverTimeout: 5000, // ms to keep tab open after no longer hovered - only if action = 'hover'\n offset: '200px', // panel dist from top or left (bottom or right if offsetReverse is true)\n offsetReverse: false, // if true, panel is offset from right or bottom of window instead of left or top\n otherOffset: null, // if set, panel size is also set to maintain this dist from bottom or right of view port (top or left if offsetReverse)\n handleOffset: null, // e.g. '10px'. If null, detects panel border to align handle nicely on edge\n handleOffsetReverse: false, // if true, handle is offset from right or bottom of panel instead of left or top\n bounceDistance: '50px', // how far bounce event will move everything\n bounceTimes: 4, // how many bounces when 'bounce' is called\n bounceSpeed: 300, // time to animate bounces\n tabImage: null, // optional image to show in the tab\n tabImageHeight: null, // optional IE8 and lower only, else autodetected size\n tabImageWidth: null, // optional IE8 and lower only, else autodetected size\n onLoadSlideOut: false, // slide out after DOM load\n clickScreenToClose: true, // close tab when somewhere outside the tab is clicked\n clickScreenToCloseFilters: ['.ui-slideouttab-panel'], // if click target or parents match any of these, click won't close this tab\n onOpen: function() {}, // handler called after opening\n onClose: function() {} // handler called after closing\n }, callerSettings || {});\n\n var edge = settings.tabLocation;\n var handle = settings.tabHandle = $(settings.tabHandle, panel);\n\n panel.addClass('ui-slideouttab-panel')\n .addClass('ui-slideouttab-' + edge);\n if (settings.offsetReverse) {\n panel.addClass('ui-slideouttab-panel-reverse');\n }\n handle.addClass('ui-slideouttab-handle'); // need this to find it later\n if (settings.handleOffsetReverse) {\n handle.addClass('ui-slideouttab-handle-reverse');\n }\n settings.toggleButton = $(settings.toggleButton);\n\n // apply an image to the tab if one is defined\n if (settings.tabImage !== null) {\n var imageHeight = 0;\n var imageWidth = 0;\n if (settings.tabImageHeight !== null && settings.tabImageWidth !== null) {\n imageHeight = settings.tabImageHeight;\n imageWidth = settings.tabImageWidth;\n } else {\n var img = new Image();\n img.src = settings.tabImage;\n imageHeight = img.naturalHeight;\n imageWidth = img.naturalWidth;\n }\n\n handle.addClass('ui-slideouttab-handle-image');\n handle.css({\n 'background': 'url(' + settings.tabImage + ') no-repeat',\n 'width': imageWidth,\n 'height': imageHeight\n });\n }\n\n // determine whether panel and handle are positioned from top, bottom, left, or right\n if (edge === 'top' || edge === 'bottom') {\n settings.panelOffsetFrom =\n settings.offsetReverse ? 'right' : 'left';\n settings.handleOffsetFrom =\n settings.handleOffsetReverse ? 'right' : 'left';\n } else {\n settings.panelOffsetFrom =\n settings.offsetReverse ? 'bottom' : 'top';\n settings.handleOffsetFrom =\n settings.handleOffsetReverse ? 'bottom' : 'top';\n }\n\n /* autodetect the correct offset for the handle using appropriate panel border */\n if (settings.handleOffset === null) {\n settings.handleOffset = '-' + borderWidth(panel, settings.handleOffsetFrom) + 'px';\n }\n\n if (edge === 'top' || edge === 'bottom') {\n /* set left or right edges */\n panel.css(settings.panelOffsetFrom, settings.offset);\n handle.css(settings.handleOffsetFrom, settings.handleOffset);\n\n // possibly drive the panel size\n if (settings.otherOffset !== null) {\n panel.css('width', calculatePanelSize() + 'px');\n // install resize handler\n $(window).resize(function() {\n panel.css('width', calculatePanelSize() + 'px');\n });\n }\n\n if (edge === 'top') {\n handle.css({'bottom': '-' + heightAsString(handle)});\n } else {\n handle.css({'top': '-' + heightAsString(handle)});\n }\n } else {\n /* set top or bottom edge */\n panel.css(settings.panelOffsetFrom, settings.offset);\n handle.css(settings.handleOffsetFrom, settings.handleOffset);\n\n // possibly drive the panel size\n if (settings.otherOffset !== null) {\n panel.css('height', calculatePanelSize() + 'px');\n // install resize handler\n $(window).resize(function() {\n panel.css('height', calculatePanelSize() + 'px');\n });\n }\n\n if (edge === 'left') {\n handle.css({'right': '0'});\n } else {\n handle.css({'left': '0'});\n }\n }\n\n handle.click(function(event) {\n event.preventDefault();\n });\n settings.toggleButton.click(function(event) {\n event.preventDefault();\n });\n\n // now everything is set up, add the class which enables CSS tab animation\n panel.addClass('ui-slideouttab-ready');\n\n var close = function() {\n panel.removeClass('ui-slideouttab-open').trigger('slideouttabclose');\n settings.onClose();\n };\n\n var open = function() {\n panel.addClass('ui-slideouttab-open').trigger('slideouttabopen');\n settings.onOpen();\n };\n\n var toggle = function() {\n if (isOpen()) {\n close();\n } else {\n open();\n }\n };\n\n // animate the tab in and out when 'bounced'\n var moveIn = [];\n moveIn[edge] = '-=' + settings.bounceDistance;\n var moveOut = [];\n moveOut[edge] = '+=' + settings.bounceDistance;\n\n var bounceIn = function() {\n var temp = panel;\n for (var i = 0; i < settings.bounceTimes; i++) {\n temp = temp.animate(moveIn, settings.bounceSpeed)\n .animate(moveOut, settings.bounceSpeed);\n }\n panel.trigger('slideouttabbounce');\n };\n\n var bounceOut = function() {\n var temp = panel;\n for (var i = 0; i < settings.bounceTimes; i++) {\n temp = temp.animate(moveOut, settings.bounceSpeed)\n .animate(moveIn, settings.bounceSpeed);\n }\n panel.trigger('slideouttabbounce');\n };\n\n // handle clicks in rest of document to close tabs if they're open\n if (settings.clickScreenToClose) {\n // install a click handler to close tab if anywhere outside the tab is clicked,\n // that isn't filtered out by the configured filters\n $(document).click(function(event) {\n // first check the tab is open and the click isn't inside it\n if (isOpen() && !panel[0].contains(event.target)) {\n // something other than this panel was clicked\n var clicked = $(event.target);\n\n // check to see if any filters return true\n for (var i = 0; i < settings.clickScreenToCloseFilters.length; i++) {\n var filter = settings.clickScreenToCloseFilters[i];\n if (typeof filter === 'string') {\n // checked clicked element itself, and all parents\n if (clicked.is(filter) || clicked.parents().is(filter)) {\n return; // don't close the tab\n }\n } else if (typeof filter === 'function') {\n // call custom filter\n if (filter.call(panel, event)) {\n return;\n } // don't close the tab\n }\n }\n\n // we haven't returned true from any filter, so close the tab\n close();\n }\n });\n };\n\n // choose which type of action to bind\n if (settings.action === 'click') {\n handle.click(function(event) {\n toggle();\n });\n } else if (settings.action === 'hover') {\n var timer = null;\n panel.hover(\n function() {\n if (!isOpen()) {\n open();\n }\n timer = null; // eliminate the timer, ensure we don't close now\n },\n function() {\n if (isOpen() && timer === null) {\n timer = setTimeout(function() {\n if (timer) {\n close();\n }\n timer = null;\n }, settings.hoverTimeout);\n }\n });\n\n handle.click(function(event) {\n if (isOpen()) {\n close();\n }\n });\n }\n\n if (settings.onLoadSlideOut) {\n open();\n setTimeout(open, 500);\n }\n\n // custom event handlers -------\n panel.on('open', function(event) {\n if (!isOpen()) {\n open();\n }\n });\n panel.on('close', function(event) {\n if (isOpen()) {\n close();\n }\n });\n panel.on('toggle', function(event) {\n toggle();\n });\n panel.on('bounce', function(event) {\n if (isOpen()) {\n bounceIn();\n } else {\n bounceOut();\n }\n });\n\n }\n return this;\n };\n})(jQuery);\n","/**\n * Copyright (C) 2019 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {staticAsset} from 'utils/functions';\n\n// Constants defining Bootstrap Breakpoints\nexport const BREAKPOINT_SM = 768;\nexport const BREAKPOINT_MD = 992;\nexport const BREAKPOINT_LG = 1200;\n\nexport const swhSpinnerSrc = staticAsset('img/swh-spinner.gif');\n","/**\n * Copyright (C) 2018-2020 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// utility functions\n\nimport Cookies from 'js-cookie';\n\nexport function handleFetchError(response) {\n if (!response.ok) {\n throw response;\n }\n return response;\n}\n\nexport function handleFetchErrors(responses) {\n for (let i = 0; i < responses.length; ++i) {\n if (!responses[i].ok) {\n throw responses[i];\n }\n }\n return responses;\n}\n\nexport function errorMessageFromResponse(errorData, defaultMessage) {\n let errorMessage = '';\n try {\n const reason = JSON.parse(errorData['reason']);\n Object.entries(reason).forEach((keys, _) => {\n const key = keys[0];\n const message = keys[1][0]; // take only the first issue\n errorMessage += `\\n${key}: ${message}`;\n });\n } catch (_) {\n errorMessage = errorData['reason']; // can't parse it, leave it raw\n }\n return errorMessage ? `Error: ${errorMessage}` : defaultMessage;\n}\n\nexport function staticAsset(asset) {\n return `${__STATIC__}${asset}`;\n}\n\nexport function csrfPost(url, headers = {}, body = null) {\n headers['X-CSRFToken'] = Cookies.get('csrftoken');\n return fetch(url, {\n credentials: 'include',\n headers: headers,\n method: 'POST',\n body: body\n });\n}\n\nexport function isGitRepoUrl(url, pathPrefix = '/') {\n const allowedProtocols = ['http:', 'https:', 'git:'];\n if (allowedProtocols.find(protocol => protocol === url.protocol) === undefined) {\n return false;\n }\n if (!url.pathname.startsWith(pathPrefix)) {\n return false;\n }\n const re = new RegExp('[\\\\w\\\\.-]+\\\\/?(?!=.git)(?:\\\\.git\\\\/?)?$');\n return re.test(url.pathname.slice(pathPrefix.length));\n};\n\nexport function removeUrlFragment() {\n history.replaceState('', document.title, window.location.pathname + window.location.search);\n}\n\nexport function selectText(startNode, endNode) {\n const selection = window.getSelection();\n selection.removeAllRanges();\n const range = document.createRange();\n range.setStart(startNode, 0);\n if (endNode.nodeName !== '#text') {\n range.setEnd(endNode, endNode.childNodes.length);\n } else {\n range.setEnd(endNode, endNode.textContent.length);\n }\n selection.addRange(range);\n}\n\nexport function htmlAlert(type, message, closable = false) {\n let closeButton = '';\n let extraClasses = '';\n if (closable) {\n closeButton =\n ``;\n extraClasses = 'alert-dismissible';\n }\n return `
${message}${closeButton}
`;\n}\n\nexport function isValidURL(string) {\n try {\n new URL(string);\n } catch (_) {\n return false;\n }\n return true;\n}\n\nexport async function isArchivedOrigin(originPath) {\n if (!isValidURL(originPath)) {\n // Not a valid URL, return immediately\n return false;\n } else {\n const response = await fetch(Urls.api_1_origin(originPath));\n return response.ok && response.status === 200; // Success response represents an archived origin\n }\n}\n\nasync function getCanonicalGithubOriginURL(ownerRepo) {\n const ghApiResponse = await fetch(`https://api.github.com/repos/${ownerRepo}`);\n if (ghApiResponse.ok && ghApiResponse.status === 200) {\n const ghApiResponseData = await ghApiResponse.json();\n return ghApiResponseData.html_url;\n }\n}\n\nexport async function getCanonicalOriginURL(originUrl) {\n let originUrlLower = originUrl.toLowerCase();\n // github.com URL processing\n const ghUrlRegex = /^http[s]*:\\/\\/github.com\\//;\n if (originUrlLower.match(ghUrlRegex)) {\n // remove trailing .git\n if (originUrlLower.endsWith('.git')) {\n originUrlLower = originUrlLower.slice(0, -4);\n }\n // remove trailing slash\n if (originUrlLower.endsWith('/')) {\n originUrlLower = originUrlLower.slice(0, -1);\n }\n // extract {owner}/{repo}\n const ownerRepo = originUrlLower.replace(ghUrlRegex, '');\n // fetch canonical URL from github Web API\n const url = getCanonicalGithubOriginURL(ownerRepo);\n if (url) {\n return url;\n }\n }\n\n const ghpagesUrlRegex = /^http[s]*:\\/\\/(?[^/]+).github.io\\/(?[^/]+)\\/?.*/;\n const parsedUrl = originUrlLower.match(ghpagesUrlRegex);\n if (parsedUrl) {\n const ownerRepo = `${parsedUrl.groups.owner}/${parsedUrl.groups.repo}`;\n // fetch canonical URL from github Web API\n const url = getCanonicalGithubOriginURL(ownerRepo);\n if (url) {\n return url;\n }\n }\n\n return originUrl;\n}\n\nexport function getHumanReadableDate(data) {\n // Display iso format date string into a human readable date\n // This is expected to be used by date field in datatable listing views\n // Example: 3/24/2022, 10:31:08 AM\n const date = new Date(data);\n return date.toLocaleString();\n}\n","/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","/*! js-cookie v3.0.1 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (key, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n key = encodeURIComponent(key)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport default api;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["root","factory","exports","module","define","amd","self","initBrowseNavbar","window","location","pathname","Urls","browse_origin_visits","$","addClass","browse_origin_branches","browse_snapshot_branches","endsWith","browse_origin_releases","browse_snapshot_releases","document","ready","on","e","target","next","toggle","css","focus","blur","stopPropagation","preventDefault","popover","boundary","container","html","placement","width","BREAKPOINT_SM","template","content","this","attr","children","remove","title","offset","sanitize","currentTarget","id","hide","submit","searchParams","URLSearchParams","search","set","val","trim","toString","parents","length","linksPrev","linkNext","linkCurrent","inSearch","parseLinkHeader","s","match","fixTableRowsStyle","setTimeout","removeAttr","clearOriginSearchResultsTable","populateOriginSearchResultsTable","origins","show","table","promises","entries","i","origin","browseUrl","browse_origin","encodeURIComponent","url","tableRow","append","latestSnapshotUrl","api_1_origin_visit_latest","push","fetch","Promise","all","responses","map","r","json","responsesData","response","data","status","type","prop","text","removeClass","scrollTo","searchOriginsFirst","searchQueryText","limit","baseSearchUrl","URL","api_1_origin_metadata_search","useSearchQL","api_1_origin_search","withVisit","visitType","searchOrigins","searchUrl","handleFetchError","headers","has","undefined","parsedLink","get","errorData","errorMessageFromResponse","startsWith","resolveSWHIDUrl","api_1_resolve_swhid","browse_url","reason","isArchivedOrigin","href","initOriginSearch","event","checkValidity","withContent","searchMetadata","queryParameters","browse_search","click","hasClass","pop","urlParams","query","doSearch","initSnapshotNavigation","snapshotContext","branch","setBranchesTabActive","setReleasesTabActive","dropdownResized","dropdownWidth","swhIdObjectTypeToggled","tab","swhIdContextOptionToggled","swhIdElt","closest","find","swhIdWithContext","swhIdWithContextUrl","currentSwhId","replace","pos","indexOf","slice","addLinesInfo","lines","linesPart","linesRegexp","RegExp","line","exec","hash","parseInt","ClipboardJS","trigger","swhIdUrl","innerWidth","tabSlideOptions","tabLocation","clickScreenToCloseFilters","innerHeight","tabSlideOut","fn","callerSettings","heightAsString","node","outerHeight","calculatePanelSize","available","height","edge","settings","otherOffset","panel","isOpen","Error","extend","tabHandle","action","hoverTimeout","offsetReverse","handleOffset","handleOffsetReverse","bounceDistance","bounceTimes","bounceSpeed","tabImage","tabImageHeight","tabImageWidth","onLoadSlideOut","clickScreenToClose","onOpen","onClose","handle","toggleButton","imageHeight","imageWidth","img","Image","src","naturalHeight","naturalWidth","panelOffsetFrom","handleOffsetFrom","element","borderWidth","resize","close","open","moveIn","moveOut","contains","clicked","filter","is","call","timer","hover","temp","animate","bounceIn","bounceOut","jQuery","staticAsset","ok","defaultMessage","errorMessage","JSON","parse","Object","forEach","keys","_","key","message","asset","__STATIC__","isValidURL","string","originPath","api_1_origin","__webpack_modules__","__unused_webpack_module","__webpack_exports__","d","clipboard","tiny_emitter","tiny_emitter_default","n","listen","listen_default","src_select","select_default","command","execCommand","err","actions_cut","selectedText","fakeCopyAction","value","options","fakeElement","isRTL","documentElement","getAttribute","createElement","style","fontSize","border","padding","margin","position","yPosition","pageYOffset","scrollTop","top","concat","setAttribute","createFakeElement","appendChild","actions_copy","arguments","body","HTMLInputElement","includes","_typeof","obj","Symbol","iterator","constructor","prototype","actions_default","_options$action","nodeType","hasAttribute","clipboard_typeof","_defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","apply","_possibleConstructorReturn","ReferenceError","_assertThisInitialized","getPrototypeOf","getAttributeValue","suffix","attribute","_Emitter","subClass","superClass","TypeError","create","_inherits","Clipboard","Constructor","protoProps","staticProps","_super","_this","instance","_classCallCheck","resolveOptions","listenClick","actions","support","queryCommandSupported","defaultAction","defaultTarget","defaultText","_this2","listener","onClick","delegateTarget","emit","clearSelection","getSelection","removeAllRanges","selector","querySelector","destroy","Element","matches","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","parentNode","__unused_webpack_exports","_delegate","callback","useCapture","listenerFn","addEventListener","removeEventListener","elements","bind","querySelectorAll","Array","HTMLElement","nodeList","String","delegate","listenNode","listenNodeList","listenSelector","nodeName","isReadOnly","select","setSelectionRange","removeAttribute","selection","range","createRange","selectNodeContents","addRange","E","name","ctx","once","off","evtArr","len","evts","liveEvents","TinyEmitter","__webpack_module_cache__","moduleId","getter","__esModule","a","definition","hasOwnProperty","default","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","GenStateSuspendedStart","method","arg","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","done","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","resolve","reject","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","object","reverse","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","assign","source","init","converter","defaultAttributes","attributes","expires","now","toUTCString","decodeURIComponent","escape","stringifiedAttributes","attributeName","split","cookie","write","cookies","jar","parts","join","foundKey","read","withAttributes","withConverter","freeze","path","__webpack_require__","cachedModule"],"sourceRoot":""} \ No newline at end of file diff --git a/static/jssources/assets/src/bundles/browse/origin-search.js b/static/jssources/assets/src/bundles/browse/origin-search.js index 06ac97f7..7b547457 100644 --- a/static/jssources/assets/src/bundles/browse/origin-search.js +++ b/static/jssources/assets/src/bundles/browse/origin-search.js @@ -1,270 +1,271 @@ /** * Copyright (C) 2018-2021 The Software Heritage developers * See the AUTHORS file at the top-level directory of this distribution * License: GNU Affero General Public License version 3, or any later version * See top-level LICENSE file for more information */ import {handleFetchError, errorMessageFromResponse, isArchivedOrigin} from 'utils/functions'; const limit = 100; const linksPrev = []; let linkNext = null; let linkCurrent = null; let inSearch = false; function parseLinkHeader(s) { const re = /<(.+)>; rel="next"/; return s.match(re)[1]; } function fixTableRowsStyle() { setTimeout(() => { $('#origin-search-results tbody tr').removeAttr('style'); }); } function clearOriginSearchResultsTable() { $('#origin-search-results tbody tr').remove(); } async function populateOriginSearchResultsTable(origins) { if (origins.length > 0) { $('#swh-origin-search-results').show(); $('#swh-no-result').hide(); clearOriginSearchResultsTable(); const table = $('#origin-search-results tbody'); const promises = []; for (const [i, origin] of origins.entries()) { const browseUrl = `${Urls.browse_origin()}?origin_url=${encodeURIComponent(origin.url)}`; let tableRow = ``; tableRow += `` + '' + 'Checking'; tableRow += '' + `${origin.url}`; tableRow += `` + '' + 'Checking'; tableRow += ''; table.append(tableRow); // get async latest visit snapshot and update visit status icon let latestSnapshotUrl = Urls.api_1_origin_visit_latest(origin.url); latestSnapshotUrl += '?require_snapshot=true'; promises.push(fetch(latestSnapshotUrl)); } const responses = await Promise.all(promises); const responsesData = await Promise.all(responses.map(r => r.json())); for (let i = 0; i < responses.length; ++i) { const response = responses[i]; const data = responsesData[i]; if (response.status !== 404 && data.type) { $(`#visit-type-origin-${i}`).html(data.type); $(`#visit-status-origin-${i}`).html( 'Archived'); } else { $(`#visit-type-origin-${i}`).html('unknown'); $(`#visit-status-origin-${i}`).html( 'Pending archival'); if ($('#swh-filter-empty-visits').prop('checked')) { $(`#origin-${i}`).remove(); } } } fixTableRowsStyle(); } else { $('#swh-origin-search-results').hide(); $('#swh-no-result').text('No origins matching the search criteria were found.'); $('#swh-no-result').show(); } if (linkNext === null) { $('#origins-next-results-button').addClass('disabled'); } else { $('#origins-next-results-button').removeClass('disabled'); } if (linksPrev.length === 0) { $('#origins-prev-results-button').addClass('disabled'); } else { $('#origins-prev-results-button').removeClass('disabled'); } inSearch = false; setTimeout(() => { window.scrollTo(0, 0); }); } function searchOriginsFirst(searchQueryText, limit) { let baseSearchUrl; const searchMetadata = $('#swh-search-origin-metadata').prop('checked'); if (searchMetadata) { baseSearchUrl = new URL(Urls.api_1_origin_metadata_search(), window.location); baseSearchUrl.searchParams.append('fulltext', searchQueryText); } else { const useSearchQL = $('#swh-search-use-ql').prop('checked'); baseSearchUrl = new URL(Urls.api_1_origin_search(searchQueryText), window.location); baseSearchUrl.searchParams.append('use_ql', useSearchQL ?? false); } const withVisit = $('#swh-search-origins-with-visit').prop('checked'); baseSearchUrl.searchParams.append('limit', limit); baseSearchUrl.searchParams.append('with_visit', withVisit); const visitType = $('#swh-search-visit-type').val(); if (visitType !== 'any') { baseSearchUrl.searchParams.append('visit_type', visitType); } const searchUrl = baseSearchUrl.toString(); searchOrigins(searchUrl); } async function searchOrigins(searchUrl) { clearOriginSearchResultsTable(); $('.swh-loading').addClass('show'); try { const response = await fetch(searchUrl); handleFetchError(response); const data = await response.json(); // Save link to the current results page linkCurrent = searchUrl; // Save link to the next results page. linkNext = null; if (response.headers.has('Link')) { const parsedLink = parseLinkHeader(response.headers.get('Link')); if (parsedLink !== undefined) { linkNext = parsedLink; } } // prevLinks is updated by the caller, which is the one to know if // we're going forward or backward in the pages. $('.swh-loading').removeClass('show'); populateOriginSearchResultsTable(data); } catch (errorResponse) { const errorData = await errorResponse.json(); $('.swh-loading').removeClass('show'); inSearch = false; $('#swh-origin-search-results').hide(); $('#swh-no-result').text(errorMessageFromResponse( errorData, 'An unknown error occurred while searching origins')); $('#swh-no-result').show(); } } async function doSearch() { $('#swh-no-result').hide(); const searchQueryText = $('#swh-origins-url-patterns').val(); inSearch = true; if (searchQueryText.startsWith('swh:')) { try { // searchQueryText may be a PID so sending search queries to PID resolve endpoint const resolveSWHIDUrl = Urls.api_1_resolve_swhid(searchQueryText); const response = await fetch(resolveSWHIDUrl); handleFetchError(response); const data = await response.json(); // SWHID has been successfully resolved, // so redirect to browse page window.location = data.browse_url; } catch (response) { // display a useful error message if the input // looks like a SWHID const data = await response.json(); $('#swh-origin-search-results').hide(); $('.swh-search-pagination').hide(); $('#swh-no-result').text(data.reason); $('#swh-no-result').show(); } } else if (await isArchivedOrigin(searchQueryText)) { // redirect to the browse origin window.location.href = `${Urls.browse_origin()}?origin_url=${encodeURIComponent(searchQueryText)}`; } else { // otherwise, proceed with origins search irrespective of the error $('#swh-origin-search-results').show(); $('.swh-search-pagination').show(); searchOriginsFirst(searchQueryText, limit); } } export function initOriginSearch() { $(document).ready(() => { $('#swh-search-origins').submit(event => { event.preventDefault(); if (event.target.checkValidity()) { $(event.target).removeClass('was-validated'); const searchQueryText = $('#swh-origins-url-patterns').val().trim(); const withVisit = $('#swh-search-origins-with-visit').prop('checked'); const withContent = $('#swh-filter-empty-visits').prop('checked'); const useSearchQL = $('#swh-search-use-ql').prop('checked'); const searchMetadata = $('#swh-search-origin-metadata').prop('checked'); const visitType = $('#swh-search-visit-type').val(); const queryParameters = new URLSearchParams(); queryParameters.append('q', searchQueryText); if (withVisit) { queryParameters.append('with_visit', withVisit); } if (withContent) { queryParameters.append('with_content', withContent); } if (useSearchQL) { queryParameters.append('use_ql', useSearchQL ?? false); } if (searchMetadata) { queryParameters.append('search_metadata', searchMetadata); } if (visitType !== 'any') { queryParameters.append('visit_type', visitType); } // Update the url, triggering page reload and effective search window.location = `${Urls.browse_search()}?${queryParameters.toString()}`; } else { $(event.target).addClass('was-validated'); } }); $('#origins-next-results-button').click(event => { if ($('#origins-next-results-button').hasClass('disabled') || inSearch) { return; } inSearch = true; linksPrev.push(linkCurrent); searchOrigins(linkNext); event.preventDefault(); }); $('#origins-prev-results-button').click(event => { if ($('#origins-prev-results-button').hasClass('disabled') || inSearch) { return; } inSearch = true; searchOrigins(linksPrev.pop()); event.preventDefault(); }); - const urlParams = new URLSearchParams(window.location.search); - const query = urlParams.get('q'); - const withVisit = urlParams.has('with_visit'); - const useSearchQL = urlParams.has('use_ql'); - const withContent = urlParams.has('with_content'); - const searchMetadata = urlParams.has('search_metadata'); - const visitType = urlParams.get('visit_type'); - if (query) { + if (window.location.search) { + const urlParams = new URLSearchParams(window.location.search); + const query = urlParams.get('q'); + const withVisit = urlParams.has('with_visit'); + const useSearchQL = urlParams.has('use_ql'); + const withContent = urlParams.has('with_content'); + const searchMetadata = urlParams.has('search_metadata'); + const visitType = urlParams.get('visit_type'); + $('#swh-origins-url-patterns').val(query); $('#swh-search-origins-with-visit').prop('checked', withVisit); $('#swh-search-use-ql').prop('checked', useSearchQL ?? false); $('#swh-filter-empty-visits').prop('checked', withContent); $('#swh-search-origin-metadata').prop('checked', searchMetadata); if (visitType) { $('#swh-search-visit-type').val(visitType); } doSearch(); } }); } diff --git a/static/jssources/jslicenses.json b/static/jssources/jslicenses.json index aa6dcd3f..228d99ce 100644 --- a/static/jssources/jslicenses.json +++ b/static/jssources/jslicenses.json @@ -1 +1 @@ -{"/static/js/add_forge.6d7376990eabad2fde82.js":[{"id":"@babel/runtime/helpers/esm/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/asyncToGenerator.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"assets/src/bundles/add_forge/add-request-history-item.ejs","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/add_forge/add-request-history-item.ejs"},{"id":"assets/src/bundles/add_forge/create-request.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/add_forge/create-request.js"},{"id":"assets/src/bundles/add_forge/forge-admin-email.ejs","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/add_forge/forge-admin-email.ejs"},{"id":"assets/src/bundles/add_forge/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/add_forge/index.js"},{"id":"assets/src/bundles/add_forge/moderation-dashboard.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/add_forge/moderation-dashboard.js"},{"id":"assets/src/bundles/add_forge/request-dashboard.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/add_forge/request-dashboard.js"},{"id":"assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/constants.js"},{"id":"assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/functions.js"},{"id":"assets/src/utils/requests-filter-checkbox.ejs","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/requests-filter-checkbox.ejs"},{"id":"js-cookie/dist/js.cookie.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/dist/js.cookie.mjs"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"}],"/static/js/admin.cb05f9f1ab8e1adcdbfb.js":[{"id":"@babel/runtime/helpers/esm/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/asyncToGenerator.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"assets/src/bundles/admin/deposit.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/admin/deposit.js"},{"id":"assets/src/bundles/admin/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/admin/index.js"},{"id":"assets/src/bundles/admin/mailmap-form.ejs","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/admin/mailmap-form.ejs"},{"id":"assets/src/bundles/admin/mailmap.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/admin/mailmap.js"},{"id":"assets/src/bundles/admin/origin-save.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/admin/origin-save.js"},{"id":"assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/constants.js"},{"id":"assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/functions.js"},{"id":"js-cookie/dist/js.cookie.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/dist/js.cookie.mjs"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"}],"/static/js/auth.7a6ba4612115126f9b59.js":[{"id":"@babel/runtime/helpers/esm/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/asyncToGenerator.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"assets/src/bundles/auth/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/auth/index.js"},{"id":"assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/functions.js"},{"id":"js-cookie/dist/js.cookie.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/dist/js.cookie.mjs"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"}],"/static/js/browse.e03893c8e18381ce9581.js":[{"id":"@babel/runtime/helpers/esm/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/asyncToGenerator.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"assets/src/bundles/browse/browse-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/browse/browse-utils.js"},{"id":"assets/src/bundles/browse/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/browse/index.js"},{"id":"assets/src/bundles/browse/origin-search.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/browse/origin-search.js"},{"id":"assets/src/bundles/browse/snapshot-navigation.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/browse/snapshot-navigation.js"},{"id":"assets/src/bundles/browse/swhid-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/browse/swhid-utils.js"},{"id":"assets/src/thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.js","licenses":[{"name":"GNU General Public License (GPL) version 3","url":"http://www.gnu.org/licenses/gpl-3.0.html","copy_url":"/static/jssources/assets/src/thirdparty/jquery.tabSlideOut/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.js"},{"id":"assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/constants.js"},{"id":"assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/functions.js"},{"id":"clipboard/dist/clipboard.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/clipboard/LICENSE.txt"}],"src_url":"/static/jssources/clipboard/dist/clipboard.js"},{"id":"js-cookie/dist/js.cookie.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/dist/js.cookie.mjs"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"}],"/static/js/guided_tour.6fdb762b8416936b3c84.js":[{"id":"assets/src/bundles/guided_tour/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/guided_tour/index.js"},{"id":"assets/src/utils/scrolling.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/scrolling.js"},{"id":"intro.js/intro.module.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/intro.js/license.md"}],"src_url":"/static/jssources/intro.js/intro.module.js"}],"/static/js/origin.278a63bfc40cb4173975.js":[{"id":"@babel/runtime/helpers/esm/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/asyncToGenerator.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"assets/src/bundles/origin/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/origin/index.js"},{"id":"assets/src/bundles/origin/utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/origin/utils.js"},{"id":"assets/src/bundles/origin/visits-calendar.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/origin/visits-calendar.js"},{"id":"assets/src/bundles/origin/visits-histogram.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/origin/visits-histogram.js"},{"id":"assets/src/bundles/origin/visits-reporting.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/origin/visits-reporting.js"},{"id":"hex-rgb/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/hex-rgb/license.txt"}],"src_url":"/static/jssources/hex-rgb/index.js"},{"id":"js-year-calendar/dist/js-year-calendar.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/js-year-calendar/LICENSE.txt"}],"src_url":"/static/jssources/js-year-calendar/dist/js-year-calendar.js"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"}],"/static/js/revision.52cc3dd3b75a01c492af.js":[{"id":"@babel/runtime/helpers/esm/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/asyncToGenerator.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"assets/src/bundles/revision/diff-panel.ejs","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/revision/diff-panel.ejs"},{"id":"assets/src/bundles/revision/diff-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/revision/diff-utils.js"},{"id":"assets/src/bundles/revision/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/revision/index.js"},{"id":"assets/src/bundles/revision/log-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/revision/log-utils.js"},{"id":"assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/constants.js"},{"id":"assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/functions.js"},{"id":"js-cookie/dist/js.cookie.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/dist/js.cookie.mjs"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"},{"id":"waypoints/lib/jquery.waypoints.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/waypoints/licenses.txt.txt"}],"src_url":"/static/jssources/waypoints/lib/jquery.waypoints.js"}],"/static/js/save.9fc62242a6cdffdaad2c.js":[{"id":"@babel/runtime/helpers/esm/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/asyncToGenerator.js"},{"id":"@babel/runtime/helpers/esm/inherits.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/inherits.js"},{"id":"@babel/runtime/helpers/esm/setPrototypeOf.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/setPrototypeOf.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"assets/src/bundles/save/artifact-form-row.ejs","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/save/artifact-form-row.ejs"},{"id":"assets/src/bundles/save/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/save/index.js"},{"id":"assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/constants.js"},{"id":"assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/functions.js"},{"id":"assets/src/utils/requests-filter-checkbox.ejs","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/requests-filter-checkbox.ejs"},{"id":"js-cookie/dist/js.cookie.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/dist/js.cookie.mjs"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"}],"/static/js/vault.e2e8f042b9c742390872.js":[{"id":"@babel/runtime/helpers/esm/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/asyncToGenerator.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"assets/src/bundles/vault/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/vault/index.js"},{"id":"assets/src/bundles/vault/vault-create-tasks.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/vault/vault-create-tasks.js"},{"id":"assets/src/bundles/vault/vault-table-row.ejs","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/vault/vault-table-row.ejs"},{"id":"assets/src/bundles/vault/vault-ui.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/vault/vault-ui.js"},{"id":"assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/functions.js"},{"id":"email-validator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/email-validator/LICENSE.txt"}],"src_url":"/static/jssources/email-validator/index.js"},{"id":"js-cookie/dist/js.cookie.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/dist/js.cookie.mjs"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"}],"/static/js/vendors.d43ce19d06b487934799.js":[{"id":"admin-lte/dist/js/adminlte.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/admin-lte/LICENSE.txt"}],"src_url":"/static/jssources/admin-lte/dist/js/adminlte.js"},{"id":"assets/src/bundles/vendors/elementsfrompoint-polyfill.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/vendors/elementsfrompoint-polyfill.js"},{"id":"assets/src/bundles/vendors/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/vendors/index.js"},{"id":"bootstrap/js/dist/alert.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/alert.js"},{"id":"bootstrap/js/dist/button.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/button.js"},{"id":"bootstrap/js/dist/carousel.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/carousel.js"},{"id":"bootstrap/js/dist/collapse.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/collapse.js"},{"id":"bootstrap/js/dist/dropdown.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/dropdown.js"},{"id":"bootstrap/js/dist/modal.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/modal.js"},{"id":"bootstrap/js/dist/popover.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/popover.js"},{"id":"bootstrap/js/dist/scrollspy.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/scrollspy.js"},{"id":"bootstrap/js/dist/tab.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/tab.js"},{"id":"bootstrap/js/dist/tooltip.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/tooltip.js"},{"id":"bootstrap/js/dist/util.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/util.js"},{"id":"chosen-js/chosen.jquery.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/chosen-js/LICENSE.md"}],"src_url":"/static/jssources/chosen-js/chosen.jquery.js"},{"id":"core-js/internals/a-callable.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/a-callable.js"},{"id":"core-js/internals/a-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/a-constructor.js"},{"id":"core-js/internals/a-possible-prototype.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/a-possible-prototype.js"},{"id":"core-js/internals/add-to-unscopables.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/add-to-unscopables.js"},{"id":"core-js/internals/advance-string-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/advance-string-index.js"},{"id":"core-js/internals/an-instance.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/an-instance.js"},{"id":"core-js/internals/an-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/an-object.js"},{"id":"core-js/internals/array-buffer-native.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-buffer-native.js"},{"id":"core-js/internals/array-buffer-non-extensible.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-buffer-non-extensible.js"},{"id":"core-js/internals/array-buffer-view-core.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-buffer-view-core.js"},{"id":"core-js/internals/array-buffer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-buffer.js"},{"id":"core-js/internals/array-copy-within.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-copy-within.js"},{"id":"core-js/internals/array-fill.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-fill.js"},{"id":"core-js/internals/array-for-each.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-for-each.js"},{"id":"core-js/internals/array-from-constructor-and-list.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-from-constructor-and-list.js"},{"id":"core-js/internals/array-from.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-from.js"},{"id":"core-js/internals/array-includes.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-includes.js"},{"id":"core-js/internals/array-iteration.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-iteration.js"},{"id":"core-js/internals/array-last-index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-last-index-of.js"},{"id":"core-js/internals/array-method-has-species-support.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-method-has-species-support.js"},{"id":"core-js/internals/array-method-is-strict.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-method-is-strict.js"},{"id":"core-js/internals/array-reduce.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-reduce.js"},{"id":"core-js/internals/array-slice-simple.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-slice-simple.js"},{"id":"core-js/internals/array-slice.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-slice.js"},{"id":"core-js/internals/array-sort.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-sort.js"},{"id":"core-js/internals/array-species-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-species-constructor.js"},{"id":"core-js/internals/array-species-create.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-species-create.js"},{"id":"core-js/internals/base64-map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/base64-map.js"},{"id":"core-js/internals/call-with-safe-iteration-closing.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/call-with-safe-iteration-closing.js"},{"id":"core-js/internals/check-correctness-of-iteration.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/check-correctness-of-iteration.js"},{"id":"core-js/internals/classof-raw.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/classof-raw.js"},{"id":"core-js/internals/classof.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/classof.js"},{"id":"core-js/internals/clear-error-stack.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/clear-error-stack.js"},{"id":"core-js/internals/collection-strong.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/collection-strong.js"},{"id":"core-js/internals/collection-weak.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/collection-weak.js"},{"id":"core-js/internals/collection.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/collection.js"},{"id":"core-js/internals/copy-constructor-properties.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/copy-constructor-properties.js"},{"id":"core-js/internals/correct-is-regexp-logic.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/correct-is-regexp-logic.js"},{"id":"core-js/internals/correct-prototype-getter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/correct-prototype-getter.js"},{"id":"core-js/internals/create-html.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-html.js"},{"id":"core-js/internals/create-iterator-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-iterator-constructor.js"},{"id":"core-js/internals/create-non-enumerable-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-non-enumerable-property.js"},{"id":"core-js/internals/create-property-descriptor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-property-descriptor.js"},{"id":"core-js/internals/create-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-property.js"},{"id":"core-js/internals/date-to-iso-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/date-to-iso-string.js"},{"id":"core-js/internals/date-to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/date-to-primitive.js"},{"id":"core-js/internals/define-built-in-accessor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/define-built-in-accessor.js"},{"id":"core-js/internals/define-built-in.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/define-built-in.js"},{"id":"core-js/internals/define-built-ins.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/define-built-ins.js"},{"id":"core-js/internals/define-iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/define-iterator.js"},{"id":"core-js/internals/define-well-known-symbol.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/define-well-known-symbol.js"},{"id":"core-js/internals/descriptors.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/descriptors.js"},{"id":"core-js/internals/document-create-element.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/document-create-element.js"},{"id":"core-js/internals/dom-exception-constants.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/dom-exception-constants.js"},{"id":"core-js/internals/dom-iterables.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/dom-iterables.js"},{"id":"core-js/internals/dom-token-list-prototype.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/dom-token-list-prototype.js"},{"id":"core-js/internals/engine-ff-version.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-ff-version.js"},{"id":"core-js/internals/engine-is-browser.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-is-browser.js"},{"id":"core-js/internals/engine-is-ie-or-edge.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-is-ie-or-edge.js"},{"id":"core-js/internals/engine-is-ios-pebble.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-is-ios-pebble.js"},{"id":"core-js/internals/engine-is-ios.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-is-ios.js"},{"id":"core-js/internals/engine-is-node.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-is-node.js"},{"id":"core-js/internals/engine-is-webos-webkit.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-is-webos-webkit.js"},{"id":"core-js/internals/engine-user-agent.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-user-agent.js"},{"id":"core-js/internals/engine-v8-version.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-v8-version.js"},{"id":"core-js/internals/engine-webkit-version.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-webkit-version.js"},{"id":"core-js/internals/enum-bug-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/enum-bug-keys.js"},{"id":"core-js/internals/error-stack-installable.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/error-stack-installable.js"},{"id":"core-js/internals/error-to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/error-to-string.js"},{"id":"core-js/internals/export.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/export.js"},{"id":"core-js/internals/fails.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/fails.js"},{"id":"core-js/internals/fix-regexp-well-known-symbol-logic.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/fix-regexp-well-known-symbol-logic.js"},{"id":"core-js/internals/flatten-into-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/flatten-into-array.js"},{"id":"core-js/internals/freezing.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/freezing.js"},{"id":"core-js/internals/function-apply.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/function-apply.js"},{"id":"core-js/internals/function-bind-context.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/function-bind-context.js"},{"id":"core-js/internals/function-bind-native.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/function-bind-native.js"},{"id":"core-js/internals/function-bind.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/function-bind.js"},{"id":"core-js/internals/function-call.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/function-call.js"},{"id":"core-js/internals/function-name.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/function-name.js"},{"id":"core-js/internals/function-uncurry-this.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/function-uncurry-this.js"},{"id":"core-js/internals/get-built-in.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/get-built-in.js"},{"id":"core-js/internals/get-iterator-method.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/get-iterator-method.js"},{"id":"core-js/internals/get-iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/get-iterator.js"},{"id":"core-js/internals/get-method.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/get-method.js"},{"id":"core-js/internals/get-substitution.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/get-substitution.js"},{"id":"core-js/internals/global.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/global.js"},{"id":"core-js/internals/has-own-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/has-own-property.js"},{"id":"core-js/internals/hidden-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/hidden-keys.js"},{"id":"core-js/internals/host-report-errors.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/host-report-errors.js"},{"id":"core-js/internals/html.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/html.js"},{"id":"core-js/internals/ie8-dom-define.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/ie8-dom-define.js"},{"id":"core-js/internals/ieee754.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/ieee754.js"},{"id":"core-js/internals/indexed-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/indexed-object.js"},{"id":"core-js/internals/inherit-if-required.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/inherit-if-required.js"},{"id":"core-js/internals/inspect-source.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/inspect-source.js"},{"id":"core-js/internals/install-error-cause.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/install-error-cause.js"},{"id":"core-js/internals/internal-metadata.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/internal-metadata.js"},{"id":"core-js/internals/internal-state.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/internal-state.js"},{"id":"core-js/internals/is-array-iterator-method.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-array-iterator-method.js"},{"id":"core-js/internals/is-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-array.js"},{"id":"core-js/internals/is-callable.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-callable.js"},{"id":"core-js/internals/is-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-constructor.js"},{"id":"core-js/internals/is-data-descriptor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-data-descriptor.js"},{"id":"core-js/internals/is-forced.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-forced.js"},{"id":"core-js/internals/is-integral-number.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-integral-number.js"},{"id":"core-js/internals/is-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-object.js"},{"id":"core-js/internals/is-pure.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-pure.js"},{"id":"core-js/internals/is-regexp.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-regexp.js"},{"id":"core-js/internals/is-symbol.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-symbol.js"},{"id":"core-js/internals/iterate.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/iterate.js"},{"id":"core-js/internals/iterator-close.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/iterator-close.js"},{"id":"core-js/internals/iterators-core.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/iterators-core.js"},{"id":"core-js/internals/iterators.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/iterators.js"},{"id":"core-js/internals/length-of-array-like.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/length-of-array-like.js"},{"id":"core-js/internals/make-built-in.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/make-built-in.js"},{"id":"core-js/internals/math-expm1.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/math-expm1.js"},{"id":"core-js/internals/math-fround.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/math-fround.js"},{"id":"core-js/internals/math-log10.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/math-log10.js"},{"id":"core-js/internals/math-log1p.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/math-log1p.js"},{"id":"core-js/internals/math-sign.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/math-sign.js"},{"id":"core-js/internals/microtask.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/microtask.js"},{"id":"core-js/internals/native-symbol-registry.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/native-symbol-registry.js"},{"id":"core-js/internals/native-symbol.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/native-symbol.js"},{"id":"core-js/internals/native-url.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/native-url.js"},{"id":"core-js/internals/native-weak-map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/native-weak-map.js"},{"id":"core-js/internals/new-promise-capability.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/new-promise-capability.js"},{"id":"core-js/internals/normalize-string-argument.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/normalize-string-argument.js"},{"id":"core-js/internals/not-a-regexp.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/not-a-regexp.js"},{"id":"core-js/internals/number-is-finite.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/number-is-finite.js"},{"id":"core-js/internals/number-parse-float.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/number-parse-float.js"},{"id":"core-js/internals/number-parse-int.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/number-parse-int.js"},{"id":"core-js/internals/object-assign.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-assign.js"},{"id":"core-js/internals/object-create.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-create.js"},{"id":"core-js/internals/object-define-properties.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-define-properties.js"},{"id":"core-js/internals/object-define-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-define-property.js"},{"id":"core-js/internals/object-get-own-property-descriptor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-own-property-descriptor.js"},{"id":"core-js/internals/object-get-own-property-names-external.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-own-property-names-external.js"},{"id":"core-js/internals/object-get-own-property-names.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-own-property-names.js"},{"id":"core-js/internals/object-get-own-property-symbols.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-own-property-symbols.js"},{"id":"core-js/internals/object-get-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-prototype-of.js"},{"id":"core-js/internals/object-is-extensible.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-is-extensible.js"},{"id":"core-js/internals/object-is-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-is-prototype-of.js"},{"id":"core-js/internals/object-keys-internal.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-keys-internal.js"},{"id":"core-js/internals/object-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-keys.js"},{"id":"core-js/internals/object-property-is-enumerable.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-property-is-enumerable.js"},{"id":"core-js/internals/object-prototype-accessors-forced.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-prototype-accessors-forced.js"},{"id":"core-js/internals/object-set-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-set-prototype-of.js"},{"id":"core-js/internals/object-to-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-to-array.js"},{"id":"core-js/internals/object-to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-to-string.js"},{"id":"core-js/internals/ordinary-to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/ordinary-to-primitive.js"},{"id":"core-js/internals/own-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/own-keys.js"},{"id":"core-js/internals/path.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/path.js"},{"id":"core-js/internals/perform.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/perform.js"},{"id":"core-js/internals/promise-constructor-detection.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/promise-constructor-detection.js"},{"id":"core-js/internals/promise-native-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/promise-native-constructor.js"},{"id":"core-js/internals/promise-resolve.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/promise-resolve.js"},{"id":"core-js/internals/promise-statics-incorrect-iteration.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/promise-statics-incorrect-iteration.js"},{"id":"core-js/internals/proxy-accessor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/proxy-accessor.js"},{"id":"core-js/internals/queue.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/queue.js"},{"id":"core-js/internals/regexp-exec-abstract.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-exec-abstract.js"},{"id":"core-js/internals/regexp-exec.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-exec.js"},{"id":"core-js/internals/regexp-flags.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-flags.js"},{"id":"core-js/internals/regexp-get-flags.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-get-flags.js"},{"id":"core-js/internals/regexp-sticky-helpers.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-sticky-helpers.js"},{"id":"core-js/internals/regexp-unsupported-dot-all.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-unsupported-dot-all.js"},{"id":"core-js/internals/regexp-unsupported-ncg.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-unsupported-ncg.js"},{"id":"core-js/internals/require-object-coercible.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/require-object-coercible.js"},{"id":"core-js/internals/same-value.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/same-value.js"},{"id":"core-js/internals/schedulers-fix.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/schedulers-fix.js"},{"id":"core-js/internals/set-global.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/set-global.js"},{"id":"core-js/internals/set-species.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/set-species.js"},{"id":"core-js/internals/set-to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/set-to-string-tag.js"},{"id":"core-js/internals/shared-key.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/shared-key.js"},{"id":"core-js/internals/shared-store.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/shared-store.js"},{"id":"core-js/internals/shared.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/shared.js"},{"id":"core-js/internals/species-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/species-constructor.js"},{"id":"core-js/internals/string-html-forced.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-html-forced.js"},{"id":"core-js/internals/string-multibyte.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-multibyte.js"},{"id":"core-js/internals/string-pad-webkit-bug.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-pad-webkit-bug.js"},{"id":"core-js/internals/string-pad.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-pad.js"},{"id":"core-js/internals/string-punycode-to-ascii.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-punycode-to-ascii.js"},{"id":"core-js/internals/string-repeat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-repeat.js"},{"id":"core-js/internals/string-trim-end.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-trim-end.js"},{"id":"core-js/internals/string-trim-forced.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-trim-forced.js"},{"id":"core-js/internals/string-trim-start.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-trim-start.js"},{"id":"core-js/internals/string-trim.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-trim.js"},{"id":"core-js/internals/symbol-define-to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/symbol-define-to-primitive.js"},{"id":"core-js/internals/task.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/task.js"},{"id":"core-js/internals/this-number-value.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/this-number-value.js"},{"id":"core-js/internals/to-absolute-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-absolute-index.js"},{"id":"core-js/internals/to-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-index.js"},{"id":"core-js/internals/to-indexed-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-indexed-object.js"},{"id":"core-js/internals/to-integer-or-infinity.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-integer-or-infinity.js"},{"id":"core-js/internals/to-length.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-length.js"},{"id":"core-js/internals/to-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-object.js"},{"id":"core-js/internals/to-offset.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-offset.js"},{"id":"core-js/internals/to-positive-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-positive-integer.js"},{"id":"core-js/internals/to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-primitive.js"},{"id":"core-js/internals/to-property-key.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-property-key.js"},{"id":"core-js/internals/to-string-tag-support.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-string-tag-support.js"},{"id":"core-js/internals/to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-string.js"},{"id":"core-js/internals/try-node-require.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/try-node-require.js"},{"id":"core-js/internals/try-to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/try-to-string.js"},{"id":"core-js/internals/typed-array-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/typed-array-constructor.js"},{"id":"core-js/internals/typed-array-constructors-require-wrappers.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/typed-array-constructors-require-wrappers.js"},{"id":"core-js/internals/typed-array-from-species-and-list.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/typed-array-from-species-and-list.js"},{"id":"core-js/internals/typed-array-from.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/typed-array-from.js"},{"id":"core-js/internals/typed-array-species-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/typed-array-species-constructor.js"},{"id":"core-js/internals/uid.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/uid.js"},{"id":"core-js/internals/use-symbol-as-uid.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/use-symbol-as-uid.js"},{"id":"core-js/internals/v8-prototype-define-bug.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/v8-prototype-define-bug.js"},{"id":"core-js/internals/validate-arguments-length.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/validate-arguments-length.js"},{"id":"core-js/internals/well-known-symbol-wrapped.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/well-known-symbol-wrapped.js"},{"id":"core-js/internals/well-known-symbol.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/well-known-symbol.js"},{"id":"core-js/internals/whitespaces.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/whitespaces.js"},{"id":"core-js/internals/wrap-error-constructor-with-cause.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/wrap-error-constructor-with-cause.js"},{"id":"core-js/modules/es.aggregate-error.cause.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.aggregate-error.cause.js"},{"id":"core-js/modules/es.aggregate-error.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.aggregate-error.constructor.js"},{"id":"core-js/modules/es.aggregate-error.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.aggregate-error.js"},{"id":"core-js/modules/es.array-buffer.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array-buffer.constructor.js"},{"id":"core-js/modules/es.array-buffer.is-view.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array-buffer.is-view.js"},{"id":"core-js/modules/es.array-buffer.slice.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array-buffer.slice.js"},{"id":"core-js/modules/es.array.at.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.at.js"},{"id":"core-js/modules/es.array.concat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.concat.js"},{"id":"core-js/modules/es.array.copy-within.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.copy-within.js"},{"id":"core-js/modules/es.array.every.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.every.js"},{"id":"core-js/modules/es.array.fill.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.fill.js"},{"id":"core-js/modules/es.array.filter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.filter.js"},{"id":"core-js/modules/es.array.find-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.find-index.js"},{"id":"core-js/modules/es.array.find.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.find.js"},{"id":"core-js/modules/es.array.flat-map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.flat-map.js"},{"id":"core-js/modules/es.array.flat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.flat.js"},{"id":"core-js/modules/es.array.for-each.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.for-each.js"},{"id":"core-js/modules/es.array.from.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.from.js"},{"id":"core-js/modules/es.array.includes.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.includes.js"},{"id":"core-js/modules/es.array.index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.index-of.js"},{"id":"core-js/modules/es.array.is-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.is-array.js"},{"id":"core-js/modules/es.array.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.iterator.js"},{"id":"core-js/modules/es.array.join.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.join.js"},{"id":"core-js/modules/es.array.last-index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.last-index-of.js"},{"id":"core-js/modules/es.array.map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.map.js"},{"id":"core-js/modules/es.array.of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.of.js"},{"id":"core-js/modules/es.array.reduce-right.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.reduce-right.js"},{"id":"core-js/modules/es.array.reduce.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.reduce.js"},{"id":"core-js/modules/es.array.reverse.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.reverse.js"},{"id":"core-js/modules/es.array.slice.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.slice.js"},{"id":"core-js/modules/es.array.some.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.some.js"},{"id":"core-js/modules/es.array.sort.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.sort.js"},{"id":"core-js/modules/es.array.species.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.species.js"},{"id":"core-js/modules/es.array.splice.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.splice.js"},{"id":"core-js/modules/es.array.unscopables.flat-map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.unscopables.flat-map.js"},{"id":"core-js/modules/es.array.unscopables.flat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.unscopables.flat.js"},{"id":"core-js/modules/es.data-view.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.data-view.constructor.js"},{"id":"core-js/modules/es.data-view.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.data-view.js"},{"id":"core-js/modules/es.date.get-year.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.get-year.js"},{"id":"core-js/modules/es.date.now.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.now.js"},{"id":"core-js/modules/es.date.set-year.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.set-year.js"},{"id":"core-js/modules/es.date.to-gmt-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.to-gmt-string.js"},{"id":"core-js/modules/es.date.to-iso-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.to-iso-string.js"},{"id":"core-js/modules/es.date.to-json.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.to-json.js"},{"id":"core-js/modules/es.date.to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.to-primitive.js"},{"id":"core-js/modules/es.date.to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.to-string.js"},{"id":"core-js/modules/es.error.cause.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.error.cause.js"},{"id":"core-js/modules/es.error.to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.error.to-string.js"},{"id":"core-js/modules/es.escape.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.escape.js"},{"id":"core-js/modules/es.function.bind.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.function.bind.js"},{"id":"core-js/modules/es.function.has-instance.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.function.has-instance.js"},{"id":"core-js/modules/es.function.name.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.function.name.js"},{"id":"core-js/modules/es.global-this.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.global-this.js"},{"id":"core-js/modules/es.json.stringify.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.json.stringify.js"},{"id":"core-js/modules/es.json.to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.json.to-string-tag.js"},{"id":"core-js/modules/es.map.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.map.constructor.js"},{"id":"core-js/modules/es.map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.map.js"},{"id":"core-js/modules/es.math.acosh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.acosh.js"},{"id":"core-js/modules/es.math.asinh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.asinh.js"},{"id":"core-js/modules/es.math.atanh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.atanh.js"},{"id":"core-js/modules/es.math.cbrt.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.cbrt.js"},{"id":"core-js/modules/es.math.clz32.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.clz32.js"},{"id":"core-js/modules/es.math.cosh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.cosh.js"},{"id":"core-js/modules/es.math.expm1.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.expm1.js"},{"id":"core-js/modules/es.math.fround.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.fround.js"},{"id":"core-js/modules/es.math.hypot.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.hypot.js"},{"id":"core-js/modules/es.math.imul.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.imul.js"},{"id":"core-js/modules/es.math.log10.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.log10.js"},{"id":"core-js/modules/es.math.log1p.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.log1p.js"},{"id":"core-js/modules/es.math.log2.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.log2.js"},{"id":"core-js/modules/es.math.sign.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.sign.js"},{"id":"core-js/modules/es.math.sinh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.sinh.js"},{"id":"core-js/modules/es.math.tanh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.tanh.js"},{"id":"core-js/modules/es.math.to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.to-string-tag.js"},{"id":"core-js/modules/es.math.trunc.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.trunc.js"},{"id":"core-js/modules/es.number.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.constructor.js"},{"id":"core-js/modules/es.number.epsilon.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.epsilon.js"},{"id":"core-js/modules/es.number.is-finite.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.is-finite.js"},{"id":"core-js/modules/es.number.is-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.is-integer.js"},{"id":"core-js/modules/es.number.is-nan.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.is-nan.js"},{"id":"core-js/modules/es.number.is-safe-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.is-safe-integer.js"},{"id":"core-js/modules/es.number.max-safe-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.max-safe-integer.js"},{"id":"core-js/modules/es.number.min-safe-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.min-safe-integer.js"},{"id":"core-js/modules/es.number.parse-float.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.parse-float.js"},{"id":"core-js/modules/es.number.parse-int.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.parse-int.js"},{"id":"core-js/modules/es.number.to-exponential.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.to-exponential.js"},{"id":"core-js/modules/es.number.to-fixed.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.to-fixed.js"},{"id":"core-js/modules/es.number.to-precision.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.to-precision.js"},{"id":"core-js/modules/es.object.assign.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.assign.js"},{"id":"core-js/modules/es.object.create.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.create.js"},{"id":"core-js/modules/es.object.define-getter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.define-getter.js"},{"id":"core-js/modules/es.object.define-properties.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.define-properties.js"},{"id":"core-js/modules/es.object.define-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.define-property.js"},{"id":"core-js/modules/es.object.define-setter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.define-setter.js"},{"id":"core-js/modules/es.object.entries.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.entries.js"},{"id":"core-js/modules/es.object.freeze.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.freeze.js"},{"id":"core-js/modules/es.object.from-entries.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.from-entries.js"},{"id":"core-js/modules/es.object.get-own-property-descriptor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.get-own-property-descriptor.js"},{"id":"core-js/modules/es.object.get-own-property-descriptors.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.get-own-property-descriptors.js"},{"id":"core-js/modules/es.object.get-own-property-names.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.get-own-property-names.js"},{"id":"core-js/modules/es.object.get-own-property-symbols.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.get-own-property-symbols.js"},{"id":"core-js/modules/es.object.get-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.get-prototype-of.js"},{"id":"core-js/modules/es.object.has-own.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.has-own.js"},{"id":"core-js/modules/es.object.is-extensible.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.is-extensible.js"},{"id":"core-js/modules/es.object.is-frozen.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.is-frozen.js"},{"id":"core-js/modules/es.object.is-sealed.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.is-sealed.js"},{"id":"core-js/modules/es.object.is.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.is.js"},{"id":"core-js/modules/es.object.keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.keys.js"},{"id":"core-js/modules/es.object.lookup-getter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.lookup-getter.js"},{"id":"core-js/modules/es.object.lookup-setter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.lookup-setter.js"},{"id":"core-js/modules/es.object.prevent-extensions.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.prevent-extensions.js"},{"id":"core-js/modules/es.object.seal.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.seal.js"},{"id":"core-js/modules/es.object.set-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.set-prototype-of.js"},{"id":"core-js/modules/es.object.to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.to-string.js"},{"id":"core-js/modules/es.object.values.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.values.js"},{"id":"core-js/modules/es.parse-float.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.parse-float.js"},{"id":"core-js/modules/es.parse-int.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.parse-int.js"},{"id":"core-js/modules/es.promise.all-settled.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.all-settled.js"},{"id":"core-js/modules/es.promise.all.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.all.js"},{"id":"core-js/modules/es.promise.any.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.any.js"},{"id":"core-js/modules/es.promise.catch.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.catch.js"},{"id":"core-js/modules/es.promise.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.constructor.js"},{"id":"core-js/modules/es.promise.finally.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.finally.js"},{"id":"core-js/modules/es.promise.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.js"},{"id":"core-js/modules/es.promise.race.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.race.js"},{"id":"core-js/modules/es.promise.reject.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.reject.js"},{"id":"core-js/modules/es.promise.resolve.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.resolve.js"},{"id":"core-js/modules/es.reflect.apply.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.apply.js"},{"id":"core-js/modules/es.reflect.construct.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.construct.js"},{"id":"core-js/modules/es.reflect.define-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.define-property.js"},{"id":"core-js/modules/es.reflect.delete-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.delete-property.js"},{"id":"core-js/modules/es.reflect.get-own-property-descriptor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.get-own-property-descriptor.js"},{"id":"core-js/modules/es.reflect.get-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.get-prototype-of.js"},{"id":"core-js/modules/es.reflect.get.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.get.js"},{"id":"core-js/modules/es.reflect.has.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.has.js"},{"id":"core-js/modules/es.reflect.is-extensible.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.is-extensible.js"},{"id":"core-js/modules/es.reflect.own-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.own-keys.js"},{"id":"core-js/modules/es.reflect.prevent-extensions.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.prevent-extensions.js"},{"id":"core-js/modules/es.reflect.set-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.set-prototype-of.js"},{"id":"core-js/modules/es.reflect.set.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.set.js"},{"id":"core-js/modules/es.reflect.to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.to-string-tag.js"},{"id":"core-js/modules/es.regexp.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.constructor.js"},{"id":"core-js/modules/es.regexp.dot-all.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.dot-all.js"},{"id":"core-js/modules/es.regexp.exec.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.exec.js"},{"id":"core-js/modules/es.regexp.flags.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.flags.js"},{"id":"core-js/modules/es.regexp.sticky.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.sticky.js"},{"id":"core-js/modules/es.regexp.test.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.test.js"},{"id":"core-js/modules/es.regexp.to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.to-string.js"},{"id":"core-js/modules/es.set.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.set.constructor.js"},{"id":"core-js/modules/es.set.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.set.js"},{"id":"core-js/modules/es.string.anchor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.anchor.js"},{"id":"core-js/modules/es.string.at-alternative.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.at-alternative.js"},{"id":"core-js/modules/es.string.big.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.big.js"},{"id":"core-js/modules/es.string.blink.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.blink.js"},{"id":"core-js/modules/es.string.bold.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.bold.js"},{"id":"core-js/modules/es.string.code-point-at.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.code-point-at.js"},{"id":"core-js/modules/es.string.ends-with.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.ends-with.js"},{"id":"core-js/modules/es.string.fixed.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.fixed.js"},{"id":"core-js/modules/es.string.fontcolor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.fontcolor.js"},{"id":"core-js/modules/es.string.fontsize.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.fontsize.js"},{"id":"core-js/modules/es.string.from-code-point.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.from-code-point.js"},{"id":"core-js/modules/es.string.includes.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.includes.js"},{"id":"core-js/modules/es.string.italics.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.italics.js"},{"id":"core-js/modules/es.string.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.iterator.js"},{"id":"core-js/modules/es.string.link.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.link.js"},{"id":"core-js/modules/es.string.match-all.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.match-all.js"},{"id":"core-js/modules/es.string.match.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.match.js"},{"id":"core-js/modules/es.string.pad-end.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.pad-end.js"},{"id":"core-js/modules/es.string.pad-start.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.pad-start.js"},{"id":"core-js/modules/es.string.raw.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.raw.js"},{"id":"core-js/modules/es.string.repeat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.repeat.js"},{"id":"core-js/modules/es.string.replace-all.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.replace-all.js"},{"id":"core-js/modules/es.string.replace.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.replace.js"},{"id":"core-js/modules/es.string.search.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.search.js"},{"id":"core-js/modules/es.string.small.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.small.js"},{"id":"core-js/modules/es.string.split.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.split.js"},{"id":"core-js/modules/es.string.starts-with.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.starts-with.js"},{"id":"core-js/modules/es.string.strike.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.strike.js"},{"id":"core-js/modules/es.string.sub.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.sub.js"},{"id":"core-js/modules/es.string.substr.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.substr.js"},{"id":"core-js/modules/es.string.sup.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.sup.js"},{"id":"core-js/modules/es.string.trim-end.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.trim-end.js"},{"id":"core-js/modules/es.string.trim-left.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.trim-left.js"},{"id":"core-js/modules/es.string.trim-right.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.trim-right.js"},{"id":"core-js/modules/es.string.trim-start.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.trim-start.js"},{"id":"core-js/modules/es.string.trim.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.trim.js"},{"id":"core-js/modules/es.symbol.async-iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.async-iterator.js"},{"id":"core-js/modules/es.symbol.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.constructor.js"},{"id":"core-js/modules/es.symbol.description.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.description.js"},{"id":"core-js/modules/es.symbol.for.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.for.js"},{"id":"core-js/modules/es.symbol.has-instance.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.has-instance.js"},{"id":"core-js/modules/es.symbol.is-concat-spreadable.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.is-concat-spreadable.js"},{"id":"core-js/modules/es.symbol.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.iterator.js"},{"id":"core-js/modules/es.symbol.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.js"},{"id":"core-js/modules/es.symbol.key-for.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.key-for.js"},{"id":"core-js/modules/es.symbol.match-all.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.match-all.js"},{"id":"core-js/modules/es.symbol.match.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.match.js"},{"id":"core-js/modules/es.symbol.replace.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.replace.js"},{"id":"core-js/modules/es.symbol.search.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.search.js"},{"id":"core-js/modules/es.symbol.species.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.species.js"},{"id":"core-js/modules/es.symbol.split.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.split.js"},{"id":"core-js/modules/es.symbol.to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.to-primitive.js"},{"id":"core-js/modules/es.symbol.to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.to-string-tag.js"},{"id":"core-js/modules/es.symbol.unscopables.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.unscopables.js"},{"id":"core-js/modules/es.typed-array.at.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.at.js"},{"id":"core-js/modules/es.typed-array.copy-within.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.copy-within.js"},{"id":"core-js/modules/es.typed-array.every.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.every.js"},{"id":"core-js/modules/es.typed-array.fill.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.fill.js"},{"id":"core-js/modules/es.typed-array.filter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.filter.js"},{"id":"core-js/modules/es.typed-array.find-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.find-index.js"},{"id":"core-js/modules/es.typed-array.find.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.find.js"},{"id":"core-js/modules/es.typed-array.float32-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.float32-array.js"},{"id":"core-js/modules/es.typed-array.float64-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.float64-array.js"},{"id":"core-js/modules/es.typed-array.for-each.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.for-each.js"},{"id":"core-js/modules/es.typed-array.from.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.from.js"},{"id":"core-js/modules/es.typed-array.includes.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.includes.js"},{"id":"core-js/modules/es.typed-array.index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.index-of.js"},{"id":"core-js/modules/es.typed-array.int16-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.int16-array.js"},{"id":"core-js/modules/es.typed-array.int32-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.int32-array.js"},{"id":"core-js/modules/es.typed-array.int8-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.int8-array.js"},{"id":"core-js/modules/es.typed-array.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.iterator.js"},{"id":"core-js/modules/es.typed-array.join.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.join.js"},{"id":"core-js/modules/es.typed-array.last-index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.last-index-of.js"},{"id":"core-js/modules/es.typed-array.map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.map.js"},{"id":"core-js/modules/es.typed-array.of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.of.js"},{"id":"core-js/modules/es.typed-array.reduce-right.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.reduce-right.js"},{"id":"core-js/modules/es.typed-array.reduce.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.reduce.js"},{"id":"core-js/modules/es.typed-array.reverse.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.reverse.js"},{"id":"core-js/modules/es.typed-array.set.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.set.js"},{"id":"core-js/modules/es.typed-array.slice.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.slice.js"},{"id":"core-js/modules/es.typed-array.some.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.some.js"},{"id":"core-js/modules/es.typed-array.sort.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.sort.js"},{"id":"core-js/modules/es.typed-array.subarray.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.subarray.js"},{"id":"core-js/modules/es.typed-array.to-locale-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.to-locale-string.js"},{"id":"core-js/modules/es.typed-array.to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.to-string.js"},{"id":"core-js/modules/es.typed-array.uint16-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.uint16-array.js"},{"id":"core-js/modules/es.typed-array.uint32-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.uint32-array.js"},{"id":"core-js/modules/es.typed-array.uint8-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.uint8-array.js"},{"id":"core-js/modules/es.typed-array.uint8-clamped-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.uint8-clamped-array.js"},{"id":"core-js/modules/es.unescape.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.unescape.js"},{"id":"core-js/modules/es.weak-map.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.weak-map.constructor.js"},{"id":"core-js/modules/es.weak-map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.weak-map.js"},{"id":"core-js/modules/es.weak-set.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.weak-set.constructor.js"},{"id":"core-js/modules/es.weak-set.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.weak-set.js"},{"id":"core-js/modules/web.atob.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.atob.js"},{"id":"core-js/modules/web.btoa.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.btoa.js"},{"id":"core-js/modules/web.clear-immediate.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.clear-immediate.js"},{"id":"core-js/modules/web.dom-collections.for-each.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.dom-collections.for-each.js"},{"id":"core-js/modules/web.dom-collections.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.dom-collections.iterator.js"},{"id":"core-js/modules/web.dom-exception.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.dom-exception.constructor.js"},{"id":"core-js/modules/web.dom-exception.stack.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.dom-exception.stack.js"},{"id":"core-js/modules/web.dom-exception.to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.dom-exception.to-string-tag.js"},{"id":"core-js/modules/web.immediate.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.immediate.js"},{"id":"core-js/modules/web.queue-microtask.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.queue-microtask.js"},{"id":"core-js/modules/web.set-immediate.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.set-immediate.js"},{"id":"core-js/modules/web.set-interval.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.set-interval.js"},{"id":"core-js/modules/web.set-timeout.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.set-timeout.js"},{"id":"core-js/modules/web.structured-clone.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.structured-clone.js"},{"id":"core-js/modules/web.timers.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.timers.js"},{"id":"core-js/modules/web.url-search-params.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.url-search-params.constructor.js"},{"id":"core-js/modules/web.url-search-params.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.url-search-params.js"},{"id":"core-js/modules/web.url.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.url.constructor.js"},{"id":"core-js/modules/web.url.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.url.js"},{"id":"core-js/modules/web.url.to-json.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.url.to-json.js"},{"id":"core-js/stable/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/stable/index.js"},{"id":"datatables.net-bs4/js/dataTables.bootstrap4.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/datatables.net-bs4/License.txt"}],"src_url":"/static/jssources/datatables.net-bs4/js/dataTables.bootstrap4.js"},{"id":"datatables.net/js/jquery.dataTables.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/datatables.net/License.txt"}],"src_url":"/static/jssources/datatables.net/js/jquery.dataTables.js"},{"id":"expose-loader/dist/runtime/getGlobalThis.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/expose-loader/LICENSE.txt"}],"src_url":"/static/jssources/expose-loader/dist/runtime/getGlobalThis.js"},{"id":"iframe-resizer/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iframe-resizer/LICENSE.txt"}],"src_url":"/static/jssources/iframe-resizer/index.js"},{"id":"iframe-resizer/js/iframeResizer.contentWindow.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iframe-resizer/LICENSE.txt"}],"src_url":"/static/jssources/iframe-resizer/js/iframeResizer.contentWindow.js"},{"id":"iframe-resizer/js/iframeResizer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iframe-resizer/LICENSE.txt"}],"src_url":"/static/jssources/iframe-resizer/js/iframeResizer.js"},{"id":"iframe-resizer/js/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iframe-resizer/LICENSE.txt"}],"src_url":"/static/jssources/iframe-resizer/js/index.js"},{"id":"jquery/dist/jquery-exposed.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/jquery/LICENSE.txt"}],"src_url":"/static/jssources/jquery/dist/jquery-exposed.js"},{"id":"jquery/dist/jquery.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/jquery/LICENSE.txt"}],"src_url":"/static/jssources/jquery/dist/jquery.js"},{"id":"js-cookie/dist/js.cookie.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/dist/js.cookie.mjs"},{"id":"popper.js/dist/esm/popper.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":""}],"src_url":"/static/jssources/popper.js/dist/esm/popper.js"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"},{"id":"whatwg-fetch/dist/fetch.umd.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/whatwg-fetch/LICENSE.txt"}],"src_url":"/static/jssources/whatwg-fetch/dist/fetch.umd.js"}],"/static/js/webapp.90df29dadbec1b5bf1f7.js":[{"id":"@babel/runtime/helpers/esm/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/asyncToGenerator.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"@sentry/browser/esm/backend.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/backend.js"},{"id":"@sentry/browser/esm/client.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/client.js"},{"id":"@sentry/browser/esm/eventbuilder.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/eventbuilder.js"},{"id":"@sentry/browser/esm/flags.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/flags.js"},{"id":"@sentry/browser/esm/helpers.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/helpers.js"},{"id":"@sentry/browser/esm/integrations/breadcrumbs.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/breadcrumbs.js"},{"id":"@sentry/browser/esm/integrations/dedupe.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/dedupe.js"},{"id":"@sentry/browser/esm/integrations/globalhandlers.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/globalhandlers.js"},{"id":"@sentry/browser/esm/integrations/linkederrors.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/linkederrors.js"},{"id":"@sentry/browser/esm/integrations/trycatch.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/trycatch.js"},{"id":"@sentry/browser/esm/integrations/useragent.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/useragent.js"},{"id":"@sentry/browser/esm/sdk.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/sdk.js"},{"id":"@sentry/browser/esm/stack-parsers.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/stack-parsers.js"},{"id":"@sentry/browser/esm/transports/base.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/transports/base.js"},{"id":"@sentry/browser/esm/transports/fetch.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/transports/fetch.js"},{"id":"@sentry/browser/esm/transports/new-fetch.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/transports/new-fetch.js"},{"id":"@sentry/browser/esm/transports/new-xhr.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/transports/new-xhr.js"},{"id":"@sentry/browser/esm/transports/utils.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/transports/utils.js"},{"id":"@sentry/browser/esm/transports/xhr.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/transports/xhr.js"},{"id":"@sentry/core/esm/api.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/api.js"},{"id":"@sentry/core/esm/basebackend.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/basebackend.js"},{"id":"@sentry/core/esm/baseclient.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/baseclient.js"},{"id":"@sentry/core/esm/flags.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/flags.js"},{"id":"@sentry/core/esm/integration.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/integration.js"},{"id":"@sentry/core/esm/integrations/functiontostring.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/integrations/functiontostring.js"},{"id":"@sentry/core/esm/integrations/inboundfilters.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/integrations/inboundfilters.js"},{"id":"@sentry/core/esm/request.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/request.js"},{"id":"@sentry/core/esm/sdk.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/sdk.js"},{"id":"@sentry/core/esm/transports/base.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/transports/base.js"},{"id":"@sentry/core/esm/transports/noop.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/transports/noop.js"},{"id":"@sentry/core/esm/version.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/version.js"},{"id":"@sentry/hub/esm/flags.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/hub/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/hub/esm/flags.js"},{"id":"@sentry/hub/esm/hub.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/hub/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/hub/esm/hub.js"},{"id":"@sentry/hub/esm/scope.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/hub/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/hub/esm/scope.js"},{"id":"@sentry/hub/esm/session.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/hub/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/hub/esm/session.js"},{"id":"@sentry/minimal/esm/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/minimal/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/minimal/esm/index.js"},{"id":"@sentry/types/esm/severity.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/types/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/types/esm/severity.js"},{"id":"@sentry/utils/esm/async.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/async.js"},{"id":"@sentry/utils/esm/browser.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/browser.js"},{"id":"@sentry/utils/esm/clientreport.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/clientreport.js"},{"id":"@sentry/utils/esm/dsn.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/dsn.js"},{"id":"@sentry/utils/esm/enums.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/enums.js"},{"id":"@sentry/utils/esm/env.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/env.js"},{"id":"@sentry/utils/esm/envelope.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/envelope.js"},{"id":"@sentry/utils/esm/error.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/error.js"},{"id":"@sentry/utils/esm/flags.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/flags.js"},{"id":"@sentry/utils/esm/global.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/global.js"},{"id":"@sentry/utils/esm/instrument.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/instrument.js"},{"id":"@sentry/utils/esm/is.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/is.js"},{"id":"@sentry/utils/esm/logger.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/logger.js"},{"id":"@sentry/utils/esm/memo.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/memo.js"},{"id":"@sentry/utils/esm/misc.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/misc.js"},{"id":"@sentry/utils/esm/node.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/node.js"},{"id":"@sentry/utils/esm/normalize.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/normalize.js"},{"id":"@sentry/utils/esm/object.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/object.js"},{"id":"@sentry/utils/esm/polyfill.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/polyfill.js"},{"id":"@sentry/utils/esm/promisebuffer.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/promisebuffer.js"},{"id":"@sentry/utils/esm/ratelimit.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/ratelimit.js"},{"id":"@sentry/utils/esm/severity.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/severity.js"},{"id":"@sentry/utils/esm/stacktrace.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/stacktrace.js"},{"id":"@sentry/utils/esm/status.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/status.js"},{"id":"@sentry/utils/esm/string.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/string.js"},{"id":"@sentry/utils/esm/supports.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/supports.js"},{"id":"@sentry/utils/esm/syncpromise.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/syncpromise.js"},{"id":"@sentry/utils/esm/time.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/time.js"},{"id":"ansi_up/ansi_up.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/ansi_up/LICENSE.txt"}],"src_url":"/static/jssources/ansi_up/ansi_up.js"},{"id":"assets/src/bundles/webapp/badges.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/badges.js"},{"id":"assets/src/bundles/webapp/code-highlighting.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/code-highlighting.js"},{"id":"assets/src/bundles/webapp/history-counters.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/history-counters.js"},{"id":"assets/src/bundles/webapp/iframes.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/iframes.js"},{"id":"assets/src/bundles/webapp/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/index.js"},{"id":"assets/src/bundles/webapp/math-typesetting.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/math-typesetting.js"},{"id":"assets/src/bundles/webapp/notebook-rendering.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/notebook-rendering.js"},{"id":"assets/src/bundles/webapp/pdf-rendering.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/pdf-rendering.js"},{"id":"assets/src/bundles/webapp/readme-rendering.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/readme-rendering.js"},{"id":"assets/src/bundles/webapp/sentry.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/sentry.js"},{"id":"assets/src/bundles/webapp/status-widget.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/status-widget.js"},{"id":"assets/src/bundles/webapp/webapp-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/webapp-utils.js"},{"id":"assets/src/bundles/webapp/xss-filtering.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/xss-filtering.js"},{"id":"assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/constants.js"},{"id":"assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/functions.js"},{"id":"dompurify/dist/purify.js","licenses":[{"name":"Mozilla Public License 2.0","url":"http://www.mozilla.org/MPL/2.0","copy_url":"/static/jssources/dompurify/LICENSE.txt"},{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/dompurify/LICENSE.txt"}],"src_url":"/static/jssources/dompurify/dist/purify.js"},{"id":"he/he.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/he/LICENSE-MIT.txt.txt"}],"src_url":"/static/jssources/he/he.js"},{"id":"html-encoder-decoder/lib/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/html-encoder-decoder/LICENSE.txt"}],"src_url":"/static/jssources/html-encoder-decoder/lib/index.js"},{"id":"iterate-object/lib/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iterate-object/LICENSE.txt"}],"src_url":"/static/jssources/iterate-object/lib/index.js"},{"id":"js-cookie/dist/js.cookie.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/dist/js.cookie.mjs"},{"id":"notebookjs/notebook.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/notebookjs/LICENSE.txt"}],"src_url":"/static/jssources/notebookjs/notebook.js"},{"id":"object-fit-images/dist/ofi.common-js.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/object-fit-images/license.txt"}],"src_url":"/static/jssources/object-fit-images/dist/ofi.common-js.js"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"},{"id":"regex-escape/lib/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regex-escape/LICENSE.txt"}],"src_url":"/static/jssources/regex-escape/lib/index.js"},{"id":"script-loader/addScript.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/script-loader/LICENSE.txt"}],"src_url":"/static/jssources/script-loader/addScript.js"},{"id":"tslib/tslib.es6.js","licenses":[{"name":"0BSD","url":"","copy_url":"/static/jssources/tslib/LICENSE.txt"}],"src_url":"/static/jssources/tslib/tslib.es6.js"}],"/static/js/d3.f989183a810fb9dbb086.js":[{"id":"assets/src/utils/d3.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/d3.js"},{"id":"d3-array/src/array.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/array.js"},{"id":"d3-array/src/ascending.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/ascending.js"},{"id":"d3-array/src/bin.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/bin.js"},{"id":"d3-array/src/bisect.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/bisect.js"},{"id":"d3-array/src/bisector.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/bisector.js"},{"id":"d3-array/src/constant.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/constant.js"},{"id":"d3-array/src/count.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/count.js"},{"id":"d3-array/src/cross.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/cross.js"},{"id":"d3-array/src/cumsum.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/cumsum.js"},{"id":"d3-array/src/descending.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/descending.js"},{"id":"d3-array/src/deviation.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/deviation.js"},{"id":"d3-array/src/difference.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/difference.js"},{"id":"d3-array/src/disjoint.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/disjoint.js"},{"id":"d3-array/src/every.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/every.js"},{"id":"d3-array/src/extent.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/extent.js"},{"id":"d3-array/src/filter.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/filter.js"},{"id":"d3-array/src/fsum.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/fsum.js"},{"id":"d3-array/src/greatest.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/greatest.js"},{"id":"d3-array/src/greatestIndex.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/greatestIndex.js"},{"id":"d3-array/src/group.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/group.js"},{"id":"d3-array/src/groupSort.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/groupSort.js"},{"id":"d3-array/src/identity.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/identity.js"},{"id":"d3-array/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/index.js"},{"id":"d3-array/src/intersection.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/intersection.js"},{"id":"d3-array/src/least.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/least.js"},{"id":"d3-array/src/leastIndex.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/leastIndex.js"},{"id":"d3-array/src/map.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/map.js"},{"id":"d3-array/src/max.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/max.js"},{"id":"d3-array/src/maxIndex.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/maxIndex.js"},{"id":"d3-array/src/mean.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/mean.js"},{"id":"d3-array/src/median.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/median.js"},{"id":"d3-array/src/merge.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/merge.js"},{"id":"d3-array/src/min.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/min.js"},{"id":"d3-array/src/minIndex.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/minIndex.js"},{"id":"d3-array/src/mode.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/mode.js"},{"id":"d3-array/src/nice.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/nice.js"},{"id":"d3-array/src/number.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/number.js"},{"id":"d3-array/src/pairs.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/pairs.js"},{"id":"d3-array/src/permute.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/permute.js"},{"id":"d3-array/src/quantile.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/quantile.js"},{"id":"d3-array/src/quickselect.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/quickselect.js"},{"id":"d3-array/src/range.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/range.js"},{"id":"d3-array/src/reduce.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/reduce.js"},{"id":"d3-array/src/reverse.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/reverse.js"},{"id":"d3-array/src/scan.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/scan.js"},{"id":"d3-array/src/set.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/set.js"},{"id":"d3-array/src/shuffle.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/shuffle.js"},{"id":"d3-array/src/some.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/some.js"},{"id":"d3-array/src/sort.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/sort.js"},{"id":"d3-array/src/subset.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/subset.js"},{"id":"d3-array/src/sum.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/sum.js"},{"id":"d3-array/src/superset.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/superset.js"},{"id":"d3-array/src/threshold/freedmanDiaconis.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/threshold/freedmanDiaconis.js"},{"id":"d3-array/src/threshold/scott.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/threshold/scott.js"},{"id":"d3-array/src/threshold/sturges.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/threshold/sturges.js"},{"id":"d3-array/src/ticks.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/ticks.js"},{"id":"d3-array/src/transpose.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/transpose.js"},{"id":"d3-array/src/union.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/union.js"},{"id":"d3-array/src/variance.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/variance.js"},{"id":"d3-array/src/zip.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/zip.js"},{"id":"d3-axis/src/axis.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-axis/LICENSE.txt"}],"src_url":"/static/jssources/d3-axis/src/axis.js"},{"id":"d3-axis/src/identity.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-axis/LICENSE.txt"}],"src_url":"/static/jssources/d3-axis/src/identity.js"},{"id":"d3-axis/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-axis/LICENSE.txt"}],"src_url":"/static/jssources/d3-axis/src/index.js"},{"id":"d3-color/src/color.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-color/LICENSE.txt"}],"src_url":"/static/jssources/d3-color/src/color.js"},{"id":"d3-color/src/define.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-color/LICENSE.txt"}],"src_url":"/static/jssources/d3-color/src/define.js"},{"id":"d3-dispatch/src/dispatch.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-dispatch/LICENSE.txt"}],"src_url":"/static/jssources/d3-dispatch/src/dispatch.js"},{"id":"d3-ease/src/cubic.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/cubic.js"},{"id":"d3-format/src/defaultLocale.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/defaultLocale.js"},{"id":"d3-format/src/exponent.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/exponent.js"},{"id":"d3-format/src/formatDecimal.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatDecimal.js"},{"id":"d3-format/src/formatGroup.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatGroup.js"},{"id":"d3-format/src/formatNumerals.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatNumerals.js"},{"id":"d3-format/src/formatPrefixAuto.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatPrefixAuto.js"},{"id":"d3-format/src/formatRounded.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatRounded.js"},{"id":"d3-format/src/formatSpecifier.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatSpecifier.js"},{"id":"d3-format/src/formatTrim.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatTrim.js"},{"id":"d3-format/src/formatTypes.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatTypes.js"},{"id":"d3-format/src/identity.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/identity.js"},{"id":"d3-format/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/index.js"},{"id":"d3-format/src/locale.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/locale.js"},{"id":"d3-format/src/precisionFixed.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/precisionFixed.js"},{"id":"d3-format/src/precisionPrefix.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/precisionPrefix.js"},{"id":"d3-format/src/precisionRound.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/precisionRound.js"},{"id":"d3-interpolate/src/array.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/array.js"},{"id":"d3-interpolate/src/basis.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/basis.js"},{"id":"d3-interpolate/src/basisClosed.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/basisClosed.js"},{"id":"d3-interpolate/src/color.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/color.js"},{"id":"d3-interpolate/src/constant.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/constant.js"},{"id":"d3-interpolate/src/date.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/date.js"},{"id":"d3-interpolate/src/number.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/number.js"},{"id":"d3-interpolate/src/numberArray.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/numberArray.js"},{"id":"d3-interpolate/src/object.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/object.js"},{"id":"d3-interpolate/src/piecewise.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/piecewise.js"},{"id":"d3-interpolate/src/rgb.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/rgb.js"},{"id":"d3-interpolate/src/round.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/round.js"},{"id":"d3-interpolate/src/string.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/string.js"},{"id":"d3-interpolate/src/transform/decompose.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/transform/decompose.js"},{"id":"d3-interpolate/src/transform/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/transform/index.js"},{"id":"d3-interpolate/src/transform/parse.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/transform/parse.js"},{"id":"d3-interpolate/src/value.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/value.js"},{"id":"d3-path/src/path.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-path/LICENSE.txt"}],"src_url":"/static/jssources/d3-path/src/path.js"},{"id":"d3-scale/src/band.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/band.js"},{"id":"d3-scale/src/constant.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/constant.js"},{"id":"d3-scale/src/continuous.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/continuous.js"},{"id":"d3-scale/src/diverging.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/diverging.js"},{"id":"d3-scale/src/identity.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/identity.js"},{"id":"d3-scale/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/index.js"},{"id":"d3-scale/src/init.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/init.js"},{"id":"d3-scale/src/linear.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/linear.js"},{"id":"d3-scale/src/log.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/log.js"},{"id":"d3-scale/src/nice.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/nice.js"},{"id":"d3-scale/src/number.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/number.js"},{"id":"d3-scale/src/ordinal.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/ordinal.js"},{"id":"d3-scale/src/pow.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/pow.js"},{"id":"d3-scale/src/quantile.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/quantile.js"},{"id":"d3-scale/src/quantize.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/quantize.js"},{"id":"d3-scale/src/radial.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/radial.js"},{"id":"d3-scale/src/sequential.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/sequential.js"},{"id":"d3-scale/src/sequentialQuantile.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/sequentialQuantile.js"},{"id":"d3-scale/src/symlog.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/symlog.js"},{"id":"d3-scale/src/threshold.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/threshold.js"},{"id":"d3-scale/src/tickFormat.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/tickFormat.js"},{"id":"d3-scale/src/time.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/time.js"},{"id":"d3-scale/src/utcTime.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/utcTime.js"},{"id":"d3-selection/src/array.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/array.js"},{"id":"d3-selection/src/constant.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/constant.js"},{"id":"d3-selection/src/create.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/create.js"},{"id":"d3-selection/src/creator.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/creator.js"},{"id":"d3-selection/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/index.js"},{"id":"d3-selection/src/local.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/local.js"},{"id":"d3-selection/src/matcher.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/matcher.js"},{"id":"d3-selection/src/namespace.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/namespace.js"},{"id":"d3-selection/src/namespaces.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/namespaces.js"},{"id":"d3-selection/src/pointer.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/pointer.js"},{"id":"d3-selection/src/pointers.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/pointers.js"},{"id":"d3-selection/src/select.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/select.js"},{"id":"d3-selection/src/selectAll.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selectAll.js"},{"id":"d3-selection/src/selection/append.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/append.js"},{"id":"d3-selection/src/selection/attr.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/attr.js"},{"id":"d3-selection/src/selection/call.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/call.js"},{"id":"d3-selection/src/selection/classed.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/classed.js"},{"id":"d3-selection/src/selection/clone.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/clone.js"},{"id":"d3-selection/src/selection/data.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/data.js"},{"id":"d3-selection/src/selection/datum.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/datum.js"},{"id":"d3-selection/src/selection/dispatch.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/dispatch.js"},{"id":"d3-selection/src/selection/each.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/each.js"},{"id":"d3-selection/src/selection/empty.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/empty.js"},{"id":"d3-selection/src/selection/enter.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/enter.js"},{"id":"d3-selection/src/selection/exit.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/exit.js"},{"id":"d3-selection/src/selection/filter.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/filter.js"},{"id":"d3-selection/src/selection/html.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/html.js"},{"id":"d3-selection/src/selection/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/index.js"},{"id":"d3-selection/src/selection/insert.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/insert.js"},{"id":"d3-selection/src/selection/iterator.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/iterator.js"},{"id":"d3-selection/src/selection/join.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/join.js"},{"id":"d3-selection/src/selection/lower.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/lower.js"},{"id":"d3-selection/src/selection/merge.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/merge.js"},{"id":"d3-selection/src/selection/node.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/node.js"},{"id":"d3-selection/src/selection/nodes.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/nodes.js"},{"id":"d3-selection/src/selection/on.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/on.js"},{"id":"d3-selection/src/selection/order.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/order.js"},{"id":"d3-selection/src/selection/property.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/property.js"},{"id":"d3-selection/src/selection/raise.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/raise.js"},{"id":"d3-selection/src/selection/remove.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/remove.js"},{"id":"d3-selection/src/selection/select.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/select.js"},{"id":"d3-selection/src/selection/selectAll.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/selectAll.js"},{"id":"d3-selection/src/selection/selectChild.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/selectChild.js"},{"id":"d3-selection/src/selection/selectChildren.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/selectChildren.js"},{"id":"d3-selection/src/selection/size.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/size.js"},{"id":"d3-selection/src/selection/sort.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/sort.js"},{"id":"d3-selection/src/selection/sparse.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/sparse.js"},{"id":"d3-selection/src/selection/style.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/style.js"},{"id":"d3-selection/src/selection/text.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/text.js"},{"id":"d3-selection/src/selector.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selector.js"},{"id":"d3-selection/src/selectorAll.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selectorAll.js"},{"id":"d3-selection/src/sourceEvent.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/sourceEvent.js"},{"id":"d3-selection/src/window.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/window.js"},{"id":"d3-shape/src/arc.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/arc.js"},{"id":"d3-shape/src/area.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/area.js"},{"id":"d3-shape/src/areaRadial.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/areaRadial.js"},{"id":"d3-shape/src/array.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/array.js"},{"id":"d3-shape/src/constant.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/constant.js"},{"id":"d3-shape/src/curve/basis.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/basis.js"},{"id":"d3-shape/src/curve/basisClosed.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/basisClosed.js"},{"id":"d3-shape/src/curve/basisOpen.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/basisOpen.js"},{"id":"d3-shape/src/curve/bump.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/bump.js"},{"id":"d3-shape/src/curve/bundle.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/bundle.js"},{"id":"d3-shape/src/curve/cardinal.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/cardinal.js"},{"id":"d3-shape/src/curve/cardinalClosed.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/cardinalClosed.js"},{"id":"d3-shape/src/curve/cardinalOpen.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/cardinalOpen.js"},{"id":"d3-shape/src/curve/catmullRom.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/catmullRom.js"},{"id":"d3-shape/src/curve/catmullRomClosed.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/catmullRomClosed.js"},{"id":"d3-shape/src/curve/catmullRomOpen.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/catmullRomOpen.js"},{"id":"d3-shape/src/curve/linear.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/linear.js"},{"id":"d3-shape/src/curve/linearClosed.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/linearClosed.js"},{"id":"d3-shape/src/curve/monotone.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/monotone.js"},{"id":"d3-shape/src/curve/natural.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/natural.js"},{"id":"d3-shape/src/curve/radial.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/radial.js"},{"id":"d3-shape/src/curve/step.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/step.js"},{"id":"d3-shape/src/descending.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/descending.js"},{"id":"d3-shape/src/identity.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/identity.js"},{"id":"d3-shape/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/index.js"},{"id":"d3-shape/src/line.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/line.js"},{"id":"d3-shape/src/lineRadial.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/lineRadial.js"},{"id":"d3-shape/src/link/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/link/index.js"},{"id":"d3-shape/src/math.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/math.js"},{"id":"d3-shape/src/noop.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/noop.js"},{"id":"d3-shape/src/offset/diverging.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/diverging.js"},{"id":"d3-shape/src/offset/expand.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/expand.js"},{"id":"d3-shape/src/offset/none.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/none.js"},{"id":"d3-shape/src/offset/silhouette.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/silhouette.js"},{"id":"d3-shape/src/offset/wiggle.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/wiggle.js"},{"id":"d3-shape/src/order/appearance.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/appearance.js"},{"id":"d3-shape/src/order/ascending.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/ascending.js"},{"id":"d3-shape/src/order/descending.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/descending.js"},{"id":"d3-shape/src/order/insideOut.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/insideOut.js"},{"id":"d3-shape/src/order/none.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/none.js"},{"id":"d3-shape/src/order/reverse.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/reverse.js"},{"id":"d3-shape/src/pie.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/pie.js"},{"id":"d3-shape/src/point.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/point.js"},{"id":"d3-shape/src/pointRadial.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/pointRadial.js"},{"id":"d3-shape/src/stack.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/stack.js"},{"id":"d3-shape/src/symbol.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol.js"},{"id":"d3-shape/src/symbol/circle.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/circle.js"},{"id":"d3-shape/src/symbol/cross.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/cross.js"},{"id":"d3-shape/src/symbol/diamond.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/diamond.js"},{"id":"d3-shape/src/symbol/square.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/square.js"},{"id":"d3-shape/src/symbol/star.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/star.js"},{"id":"d3-shape/src/symbol/triangle.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/triangle.js"},{"id":"d3-shape/src/symbol/wye.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/wye.js"},{"id":"d3-time-format/src/defaultLocale.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/defaultLocale.js"},{"id":"d3-time-format/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/index.js"},{"id":"d3-time-format/src/isoFormat.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/isoFormat.js"},{"id":"d3-time-format/src/isoParse.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/isoParse.js"},{"id":"d3-time-format/src/locale.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/locale.js"},{"id":"d3-time/src/day.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/day.js"},{"id":"d3-time/src/duration.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/duration.js"},{"id":"d3-time/src/hour.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/hour.js"},{"id":"d3-time/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/index.js"},{"id":"d3-time/src/interval.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/interval.js"},{"id":"d3-time/src/millisecond.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/millisecond.js"},{"id":"d3-time/src/minute.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/minute.js"},{"id":"d3-time/src/month.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/month.js"},{"id":"d3-time/src/second.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/second.js"},{"id":"d3-time/src/ticks.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/ticks.js"},{"id":"d3-time/src/utcDay.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcDay.js"},{"id":"d3-time/src/utcHour.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcHour.js"},{"id":"d3-time/src/utcMinute.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcMinute.js"},{"id":"d3-time/src/utcMonth.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcMonth.js"},{"id":"d3-time/src/utcWeek.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcWeek.js"},{"id":"d3-time/src/utcYear.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcYear.js"},{"id":"d3-time/src/week.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/week.js"},{"id":"d3-time/src/year.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/year.js"},{"id":"d3-timer/src/timeout.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-timer/LICENSE.txt"}],"src_url":"/static/jssources/d3-timer/src/timeout.js"},{"id":"d3-timer/src/timer.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-timer/LICENSE.txt"}],"src_url":"/static/jssources/d3-timer/src/timer.js"},{"id":"d3-transition/src/active.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/active.js"},{"id":"d3-transition/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/index.js"},{"id":"d3-transition/src/interrupt.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/interrupt.js"},{"id":"d3-transition/src/selection/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/selection/index.js"},{"id":"d3-transition/src/selection/interrupt.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/selection/interrupt.js"},{"id":"d3-transition/src/selection/transition.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/selection/transition.js"},{"id":"d3-transition/src/transition/attr.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/attr.js"},{"id":"d3-transition/src/transition/attrTween.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/attrTween.js"},{"id":"d3-transition/src/transition/delay.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/delay.js"},{"id":"d3-transition/src/transition/duration.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/duration.js"},{"id":"d3-transition/src/transition/ease.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/ease.js"},{"id":"d3-transition/src/transition/easeVarying.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/easeVarying.js"},{"id":"d3-transition/src/transition/end.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/end.js"},{"id":"d3-transition/src/transition/filter.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/filter.js"},{"id":"d3-transition/src/transition/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/index.js"},{"id":"d3-transition/src/transition/interpolate.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/interpolate.js"},{"id":"d3-transition/src/transition/merge.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/merge.js"},{"id":"d3-transition/src/transition/on.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/on.js"},{"id":"d3-transition/src/transition/remove.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/remove.js"},{"id":"d3-transition/src/transition/schedule.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/schedule.js"},{"id":"d3-transition/src/transition/select.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/select.js"},{"id":"d3-transition/src/transition/selectAll.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/selectAll.js"},{"id":"d3-transition/src/transition/selection.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/selection.js"},{"id":"d3-transition/src/transition/style.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/style.js"},{"id":"d3-transition/src/transition/styleTween.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/styleTween.js"},{"id":"d3-transition/src/transition/text.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/text.js"},{"id":"d3-transition/src/transition/textTween.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/textTween.js"},{"id":"d3-transition/src/transition/transition.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/transition.js"},{"id":"d3-transition/src/transition/tween.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/tween.js"},{"id":"internmap/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/internmap/LICENSE.txt"}],"src_url":"/static/jssources/internmap/src/index.js"}],"/static/js/highlightjs.5fd270288fca1f2de6c3.js":[{"id":"assets/src/utils/highlightjs.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/highlightjs.js"},{"id":"expose-loader/dist/runtime/getGlobalThis.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/expose-loader/LICENSE.txt"}],"src_url":"/static/jssources/expose-loader/dist/runtime/getGlobalThis.js"},{"id":"highlight.js/es/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/es/index.js"},{"id":"highlight.js/lib/core.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/core.js"},{"id":"highlight.js/lib/index-exposed.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/index-exposed.js"},{"id":"highlight.js/lib/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/index.js"},{"id":"highlight.js/lib/languages/1c.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/1c.js"},{"id":"highlight.js/lib/languages/abnf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/abnf.js"},{"id":"highlight.js/lib/languages/accesslog.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/accesslog.js"},{"id":"highlight.js/lib/languages/actionscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/actionscript.js"},{"id":"highlight.js/lib/languages/ada.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ada.js"},{"id":"highlight.js/lib/languages/angelscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/angelscript.js"},{"id":"highlight.js/lib/languages/apache.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/apache.js"},{"id":"highlight.js/lib/languages/applescript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/applescript.js"},{"id":"highlight.js/lib/languages/arcade.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/arcade.js"},{"id":"highlight.js/lib/languages/arduino.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/arduino.js"},{"id":"highlight.js/lib/languages/armasm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/armasm.js"},{"id":"highlight.js/lib/languages/asciidoc.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/asciidoc.js"},{"id":"highlight.js/lib/languages/aspectj.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/aspectj.js"},{"id":"highlight.js/lib/languages/autohotkey.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/autohotkey.js"},{"id":"highlight.js/lib/languages/autoit.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/autoit.js"},{"id":"highlight.js/lib/languages/avrasm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/avrasm.js"},{"id":"highlight.js/lib/languages/awk.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/awk.js"},{"id":"highlight.js/lib/languages/axapta.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/axapta.js"},{"id":"highlight.js/lib/languages/bash.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/bash.js"},{"id":"highlight.js/lib/languages/basic.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/basic.js"},{"id":"highlight.js/lib/languages/bnf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/bnf.js"},{"id":"highlight.js/lib/languages/brainfuck.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/brainfuck.js"},{"id":"highlight.js/lib/languages/c.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/c.js"},{"id":"highlight.js/lib/languages/cal.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/cal.js"},{"id":"highlight.js/lib/languages/capnproto.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/capnproto.js"},{"id":"highlight.js/lib/languages/ceylon.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ceylon.js"},{"id":"highlight.js/lib/languages/clean.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/clean.js"},{"id":"highlight.js/lib/languages/clojure-repl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/clojure-repl.js"},{"id":"highlight.js/lib/languages/clojure.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/clojure.js"},{"id":"highlight.js/lib/languages/cmake.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/cmake.js"},{"id":"highlight.js/lib/languages/coffeescript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/coffeescript.js"},{"id":"highlight.js/lib/languages/coq.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/coq.js"},{"id":"highlight.js/lib/languages/cos.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/cos.js"},{"id":"highlight.js/lib/languages/cpp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/cpp.js"},{"id":"highlight.js/lib/languages/crmsh.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/crmsh.js"},{"id":"highlight.js/lib/languages/crystal.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/crystal.js"},{"id":"highlight.js/lib/languages/csharp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/csharp.js"},{"id":"highlight.js/lib/languages/csp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/csp.js"},{"id":"highlight.js/lib/languages/css.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/css.js"},{"id":"highlight.js/lib/languages/d.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/d.js"},{"id":"highlight.js/lib/languages/dart.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dart.js"},{"id":"highlight.js/lib/languages/delphi.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/delphi.js"},{"id":"highlight.js/lib/languages/diff.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/diff.js"},{"id":"highlight.js/lib/languages/django.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/django.js"},{"id":"highlight.js/lib/languages/dns.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dns.js"},{"id":"highlight.js/lib/languages/dockerfile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dockerfile.js"},{"id":"highlight.js/lib/languages/dos.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dos.js"},{"id":"highlight.js/lib/languages/dsconfig.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dsconfig.js"},{"id":"highlight.js/lib/languages/dts.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dts.js"},{"id":"highlight.js/lib/languages/dust.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dust.js"},{"id":"highlight.js/lib/languages/ebnf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ebnf.js"},{"id":"highlight.js/lib/languages/elixir.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/elixir.js"},{"id":"highlight.js/lib/languages/elm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/elm.js"},{"id":"highlight.js/lib/languages/erb.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/erb.js"},{"id":"highlight.js/lib/languages/erlang-repl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/erlang-repl.js"},{"id":"highlight.js/lib/languages/erlang.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/erlang.js"},{"id":"highlight.js/lib/languages/excel.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/excel.js"},{"id":"highlight.js/lib/languages/fix.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/fix.js"},{"id":"highlight.js/lib/languages/flix.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/flix.js"},{"id":"highlight.js/lib/languages/fortran.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/fortran.js"},{"id":"highlight.js/lib/languages/fsharp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/fsharp.js"},{"id":"highlight.js/lib/languages/gams.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gams.js"},{"id":"highlight.js/lib/languages/gauss.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gauss.js"},{"id":"highlight.js/lib/languages/gcode.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gcode.js"},{"id":"highlight.js/lib/languages/gherkin.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gherkin.js"},{"id":"highlight.js/lib/languages/glsl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/glsl.js"},{"id":"highlight.js/lib/languages/gml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gml.js"},{"id":"highlight.js/lib/languages/go.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/go.js"},{"id":"highlight.js/lib/languages/golo.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/golo.js"},{"id":"highlight.js/lib/languages/gradle.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gradle.js"},{"id":"highlight.js/lib/languages/graphql.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/graphql.js"},{"id":"highlight.js/lib/languages/groovy.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/groovy.js"},{"id":"highlight.js/lib/languages/haml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/haml.js"},{"id":"highlight.js/lib/languages/handlebars.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/handlebars.js"},{"id":"highlight.js/lib/languages/haskell.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/haskell.js"},{"id":"highlight.js/lib/languages/haxe.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/haxe.js"},{"id":"highlight.js/lib/languages/hsp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/hsp.js"},{"id":"highlight.js/lib/languages/http.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/http.js"},{"id":"highlight.js/lib/languages/hy.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/hy.js"},{"id":"highlight.js/lib/languages/inform7.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/inform7.js"},{"id":"highlight.js/lib/languages/ini.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ini.js"},{"id":"highlight.js/lib/languages/irpf90.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/irpf90.js"},{"id":"highlight.js/lib/languages/isbl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/isbl.js"},{"id":"highlight.js/lib/languages/java.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/java.js"},{"id":"highlight.js/lib/languages/javascript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/javascript.js"},{"id":"highlight.js/lib/languages/jboss-cli.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/jboss-cli.js"},{"id":"highlight.js/lib/languages/json.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/json.js"},{"id":"highlight.js/lib/languages/julia-repl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/julia-repl.js"},{"id":"highlight.js/lib/languages/julia.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/julia.js"},{"id":"highlight.js/lib/languages/kotlin.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/kotlin.js"},{"id":"highlight.js/lib/languages/lasso.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/lasso.js"},{"id":"highlight.js/lib/languages/latex.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/latex.js"},{"id":"highlight.js/lib/languages/ldif.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ldif.js"},{"id":"highlight.js/lib/languages/leaf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/leaf.js"},{"id":"highlight.js/lib/languages/less.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/less.js"},{"id":"highlight.js/lib/languages/lisp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/lisp.js"},{"id":"highlight.js/lib/languages/livecodeserver.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/livecodeserver.js"},{"id":"highlight.js/lib/languages/livescript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/livescript.js"},{"id":"highlight.js/lib/languages/llvm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/llvm.js"},{"id":"highlight.js/lib/languages/lsl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/lsl.js"},{"id":"highlight.js/lib/languages/lua.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/lua.js"},{"id":"highlight.js/lib/languages/makefile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/makefile.js"},{"id":"highlight.js/lib/languages/markdown.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/markdown.js"},{"id":"highlight.js/lib/languages/mathematica.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mathematica.js"},{"id":"highlight.js/lib/languages/matlab.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/matlab.js"},{"id":"highlight.js/lib/languages/maxima.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/maxima.js"},{"id":"highlight.js/lib/languages/mel.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mel.js"},{"id":"highlight.js/lib/languages/mercury.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mercury.js"},{"id":"highlight.js/lib/languages/mipsasm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mipsasm.js"},{"id":"highlight.js/lib/languages/mizar.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mizar.js"},{"id":"highlight.js/lib/languages/mojolicious.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mojolicious.js"},{"id":"highlight.js/lib/languages/monkey.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/monkey.js"},{"id":"highlight.js/lib/languages/moonscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/moonscript.js"},{"id":"highlight.js/lib/languages/n1ql.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/n1ql.js"},{"id":"highlight.js/lib/languages/nestedtext.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/nestedtext.js"},{"id":"highlight.js/lib/languages/nginx.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/nginx.js"},{"id":"highlight.js/lib/languages/nim.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/nim.js"},{"id":"highlight.js/lib/languages/nix.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/nix.js"},{"id":"highlight.js/lib/languages/node-repl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/node-repl.js"},{"id":"highlight.js/lib/languages/nsis.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/nsis.js"},{"id":"highlight.js/lib/languages/objectivec.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/objectivec.js"},{"id":"highlight.js/lib/languages/ocaml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ocaml.js"},{"id":"highlight.js/lib/languages/openscad.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/openscad.js"},{"id":"highlight.js/lib/languages/oxygene.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/oxygene.js"},{"id":"highlight.js/lib/languages/parser3.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/parser3.js"},{"id":"highlight.js/lib/languages/perl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/perl.js"},{"id":"highlight.js/lib/languages/pf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/pf.js"},{"id":"highlight.js/lib/languages/pgsql.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/pgsql.js"},{"id":"highlight.js/lib/languages/php-template.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/php-template.js"},{"id":"highlight.js/lib/languages/php.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/php.js"},{"id":"highlight.js/lib/languages/plaintext.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/plaintext.js"},{"id":"highlight.js/lib/languages/pony.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/pony.js"},{"id":"highlight.js/lib/languages/powershell.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/powershell.js"},{"id":"highlight.js/lib/languages/processing.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/processing.js"},{"id":"highlight.js/lib/languages/profile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/profile.js"},{"id":"highlight.js/lib/languages/prolog.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/prolog.js"},{"id":"highlight.js/lib/languages/properties.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/properties.js"},{"id":"highlight.js/lib/languages/protobuf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/protobuf.js"},{"id":"highlight.js/lib/languages/puppet.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/puppet.js"},{"id":"highlight.js/lib/languages/purebasic.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/purebasic.js"},{"id":"highlight.js/lib/languages/python-repl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/python-repl.js"},{"id":"highlight.js/lib/languages/python.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/python.js"},{"id":"highlight.js/lib/languages/q.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/q.js"},{"id":"highlight.js/lib/languages/qml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/qml.js"},{"id":"highlight.js/lib/languages/r.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/r.js"},{"id":"highlight.js/lib/languages/reasonml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/reasonml.js"},{"id":"highlight.js/lib/languages/rib.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/rib.js"},{"id":"highlight.js/lib/languages/roboconf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/roboconf.js"},{"id":"highlight.js/lib/languages/routeros.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/routeros.js"},{"id":"highlight.js/lib/languages/rsl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/rsl.js"},{"id":"highlight.js/lib/languages/ruby.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ruby.js"},{"id":"highlight.js/lib/languages/ruleslanguage.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ruleslanguage.js"},{"id":"highlight.js/lib/languages/rust.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/rust.js"},{"id":"highlight.js/lib/languages/sas.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/sas.js"},{"id":"highlight.js/lib/languages/scala.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/scala.js"},{"id":"highlight.js/lib/languages/scheme.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/scheme.js"},{"id":"highlight.js/lib/languages/scilab.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/scilab.js"},{"id":"highlight.js/lib/languages/scss.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/scss.js"},{"id":"highlight.js/lib/languages/shell.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/shell.js"},{"id":"highlight.js/lib/languages/smali.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/smali.js"},{"id":"highlight.js/lib/languages/smalltalk.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/smalltalk.js"},{"id":"highlight.js/lib/languages/sml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/sml.js"},{"id":"highlight.js/lib/languages/sqf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/sqf.js"},{"id":"highlight.js/lib/languages/sql.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/sql.js"},{"id":"highlight.js/lib/languages/stan.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/stan.js"},{"id":"highlight.js/lib/languages/stata.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/stata.js"},{"id":"highlight.js/lib/languages/step21.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/step21.js"},{"id":"highlight.js/lib/languages/stylus.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/stylus.js"},{"id":"highlight.js/lib/languages/subunit.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/subunit.js"},{"id":"highlight.js/lib/languages/swift.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/swift.js"},{"id":"highlight.js/lib/languages/taggerscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/taggerscript.js"},{"id":"highlight.js/lib/languages/tap.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/tap.js"},{"id":"highlight.js/lib/languages/tcl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/tcl.js"},{"id":"highlight.js/lib/languages/thrift.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/thrift.js"},{"id":"highlight.js/lib/languages/tp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/tp.js"},{"id":"highlight.js/lib/languages/twig.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/twig.js"},{"id":"highlight.js/lib/languages/typescript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/typescript.js"},{"id":"highlight.js/lib/languages/vala.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vala.js"},{"id":"highlight.js/lib/languages/vbnet.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vbnet.js"},{"id":"highlight.js/lib/languages/vbscript-html.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vbscript-html.js"},{"id":"highlight.js/lib/languages/vbscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vbscript.js"},{"id":"highlight.js/lib/languages/verilog.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/verilog.js"},{"id":"highlight.js/lib/languages/vhdl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vhdl.js"},{"id":"highlight.js/lib/languages/vim.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vim.js"},{"id":"highlight.js/lib/languages/wasm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/wasm.js"},{"id":"highlight.js/lib/languages/wren.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/wren.js"},{"id":"highlight.js/lib/languages/x86asm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/x86asm.js"},{"id":"highlight.js/lib/languages/xl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/xl.js"},{"id":"highlight.js/lib/languages/xml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/xml.js"},{"id":"highlight.js/lib/languages/xquery.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/xquery.js"},{"id":"highlight.js/lib/languages/yaml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/yaml.js"},{"id":"highlight.js/lib/languages/zephir.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/zephir.js"},{"id":"highlightjs-4d/dist/4d.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-4d/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-4d/dist/4d.min.js"},{"id":"highlightjs-alan/dist/alan.min.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/highlightjs-alan/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-alan/dist/alan.min.js"},{"id":"highlightjs-blade/dist/blade.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-blade/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-blade/dist/blade.min.js"},{"id":"highlightjs-chaos/dist/chaos.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-chaos/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-chaos/dist/chaos.min.js"},{"id":"highlightjs-chapel/dist/chapel.min.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlightjs-chapel/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-chapel/dist/chapel.min.js"},{"id":"highlightjs-cpcdos/dist/cpc-highlight.min.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlightjs-cpcdos/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-cpcdos/dist/cpc-highlight.min.js"},{"id":"highlightjs-cshtml-razor/dist/cshtml-razor.min.js","licenses":[{"name":"Creative Commons CC0 1.0 Universal","url":"http://creativecommons.org/publicdomain/zero/1.0/legalcode","copy_url":"/static/jssources/highlightjs-cshtml-razor/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-cshtml-razor/dist/cshtml-razor.min.js"},{"id":"highlightjs-cypher/dist/cypher.min.js","licenses":[{"name":"Creative Commons CC0 1.0 Universal","url":"http://creativecommons.org/publicdomain/zero/1.0/legalcode","copy_url":"/static/jssources/highlightjs-cypher/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-cypher/dist/cypher.min.js"},{"id":"highlightjs-dafny/dist/dafny.min.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/highlightjs-dafny/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-dafny/dist/dafny.min.js"},{"id":"highlightjs-dylan/dist/dylan.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-dylan/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-dylan/dist/dylan.min.js"},{"id":"highlightjs-eta/dist/eta.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":""}],"src_url":"/static/jssources/highlightjs-eta/dist/eta.min.js"},{"id":"highlightjs-extempore/dist/extempore.min.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlightjs-extempore/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-extempore/dist/extempore.min.js"},{"id":"highlightjs-gdscript/dist/gdscript.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-gdscript/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-gdscript/dist/gdscript.min.js"},{"id":"highlightjs-gf/dist/gf.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-gf/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-gf/dist/gf.min.js"},{"id":"highlightjs-gsql/dist/gsql.min.js","licenses":[{"name":"Creative Commons CC0 1.0 Universal","url":"http://creativecommons.org/publicdomain/zero/1.0/legalcode","copy_url":""}],"src_url":"/static/jssources/highlightjs-gsql/dist/gsql.min.js"},{"id":"highlightjs-hlsl/dist/hlsl.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-hlsl/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-hlsl/dist/hlsl.min.js"},{"id":"highlightjs-jolie/dist/jolie.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-jolie/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-jolie/dist/jolie.min.js"},{"id":"highlightjs-lean/src/lean.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlightjs-lean/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-lean/src/lean.js"},{"id":"highlightjs-line-numbers.js/src/highlightjs-line-numbers.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-line-numbers.js/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-line-numbers.js/src/highlightjs-line-numbers.js"},{"id":"highlightjs-lox/dist/es/lox.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-lox/LICENSE.md"}],"src_url":"/static/jssources/highlightjs-lox/dist/es/lox.mjs"},{"id":"highlightjs-mirc/mirc.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-mirc/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-mirc/mirc.js"},{"id":"highlightjs-modelica/modelica.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-modelica/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-modelica/modelica.js"},{"id":"highlightjs-never/dist/never.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-never/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-never/dist/never.min.js"},{"id":"highlightjs-octave/dist/highlightjs-octave.cjs.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlightjs-octave/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-octave/dist/highlightjs-octave.cjs.js"},{"id":"highlightjs-oz/dist/oz.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-oz/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-oz/dist/oz.min.js"},{"id":"highlightjs-qsharp/dist/qsharp.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":""}],"src_url":"/static/jssources/highlightjs-qsharp/dist/qsharp.min.js"},{"id":"highlightjs-redbol/dist/redbol.min.js","licenses":[{"name":"Creative Commons CC0 1.0 Universal","url":"http://creativecommons.org/publicdomain/zero/1.0/legalcode","copy_url":"/static/jssources/highlightjs-redbol/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-redbol/dist/redbol.min.js"},{"id":"highlightjs-robot/robot.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-robot/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-robot/robot.js"},{"id":"highlightjs-robots-txt/dist/robots-txt.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-robots-txt/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-robots-txt/dist/robots-txt.min.js"},{"id":"highlightjs-rpm-specfile/rpm-specfile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlightjs-rpm-specfile/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-rpm-specfile/rpm-specfile.js"},{"id":"highlightjs-sap-abap/dist/abap.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-sap-abap/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-sap-abap/dist/abap.min.js"},{"id":"highlightjs-solidity/dist/solidity.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-solidity/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-solidity/dist/solidity.min.js"},{"id":"highlightjs-svelte/dist/svelte.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-svelte/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-svelte/dist/svelte.min.js"},{"id":"highlightjs-terraform/terraform.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-terraform/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-terraform/terraform.js"},{"id":"highlightjs-xsharp/dist/xsharp.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-xsharp/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-xsharp/dist/xsharp.min.js"},{"id":"highlightjs-zenscript/dist/zenscript.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-zenscript/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-zenscript/dist/zenscript.min.js"},{"id":"highlightjs-zig/dist/zig.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-zig/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-zig/dist/zig.min.js"},{"id":"hightlightjs-papyrus/dist/papyrus.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/hightlightjs-papyrus/LICENSE.txt"}],"src_url":"/static/jssources/hightlightjs-papyrus/dist/papyrus.min.js"},{"id":"script-loader/addScript.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/script-loader/LICENSE.txt"}],"src_url":"/static/jssources/script-loader/addScript.js"}],"/static/js/showdown.b448e42a34c43d6a7de5.js":[{"id":"assets/src/utils/showdown.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/showdown.js"},{"id":"showdown/dist/showdown.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/showdown/LICENSE.txt"}],"src_url":"/static/jssources/showdown/dist/showdown.js"}],"/static/js/org.9adc9a39a210c2fb4be0.js":[{"id":"assets/src/utils/org.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/org.js"},{"id":"org/lib/org.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org.js"},{"id":"org/lib/org/converter/converter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/converter/converter.js"},{"id":"org/lib/org/converter/html.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/converter/html.js"},{"id":"org/lib/org/lexer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/lexer.js"},{"id":"org/lib/org/node.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/node.js"},{"id":"org/lib/org/parser.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/parser.js"},{"id":"org/lib/org/stream.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/stream.js"}],"/static/js/pdfjs.7fa499e22fea56527058.js":[{"id":"pdfjs-dist/build/pdf.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/pdfjs-dist/LICENSE.txt"}],"src_url":"/static/jssources/pdfjs-dist/build/pdf.js"}],"/static/js/mathjax.a0046af7afe82fd10728.js":[{"id":"assets/src/utils/mathjax.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/mathjax.js"},{"id":"mathjax/es5/tex-mml-chtml.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/mathjax/LICENSE.txt"}],"src_url":"/static/jssources/mathjax/es5/tex-mml-chtml.js"}],"/static/js/pdf.worker.min.js":[{"id":"pdfjs-dist/build/pdf.worker.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/pdfjs-dist/LICENSE.txt"}],"src_url":"/static/jssources/pdfjs-dist/build/pdf.worker.js"}],"/jsreverse/":[{"id":"jsreverse","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/jsreverse/"}],"https://piwik.inria.fr/matomo.js":[{"id":"matomo.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"https://github.com/matomo-org/matomo/blob/master/js/LICENSE.txt"}],"src_url":"https://github.com/matomo-org/matomo/blob/master/js/piwik.js"}]} \ No newline at end of file +{"/static/js/add_forge.6d7376990eabad2fde82.js":[{"id":"@babel/runtime/helpers/esm/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/asyncToGenerator.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"assets/src/bundles/add_forge/add-request-history-item.ejs","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/add_forge/add-request-history-item.ejs"},{"id":"assets/src/bundles/add_forge/create-request.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/add_forge/create-request.js"},{"id":"assets/src/bundles/add_forge/forge-admin-email.ejs","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/add_forge/forge-admin-email.ejs"},{"id":"assets/src/bundles/add_forge/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/add_forge/index.js"},{"id":"assets/src/bundles/add_forge/moderation-dashboard.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/add_forge/moderation-dashboard.js"},{"id":"assets/src/bundles/add_forge/request-dashboard.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/add_forge/request-dashboard.js"},{"id":"assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/constants.js"},{"id":"assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/functions.js"},{"id":"assets/src/utils/requests-filter-checkbox.ejs","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/requests-filter-checkbox.ejs"},{"id":"js-cookie/dist/js.cookie.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/dist/js.cookie.mjs"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"}],"/static/js/admin.cb05f9f1ab8e1adcdbfb.js":[{"id":"@babel/runtime/helpers/esm/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/asyncToGenerator.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"assets/src/bundles/admin/deposit.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/admin/deposit.js"},{"id":"assets/src/bundles/admin/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/admin/index.js"},{"id":"assets/src/bundles/admin/mailmap-form.ejs","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/admin/mailmap-form.ejs"},{"id":"assets/src/bundles/admin/mailmap.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/admin/mailmap.js"},{"id":"assets/src/bundles/admin/origin-save.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/admin/origin-save.js"},{"id":"assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/constants.js"},{"id":"assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/functions.js"},{"id":"js-cookie/dist/js.cookie.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/dist/js.cookie.mjs"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"}],"/static/js/auth.7a6ba4612115126f9b59.js":[{"id":"@babel/runtime/helpers/esm/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/asyncToGenerator.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"assets/src/bundles/auth/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/auth/index.js"},{"id":"assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/functions.js"},{"id":"js-cookie/dist/js.cookie.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/dist/js.cookie.mjs"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"}],"/static/js/browse.dd1b3cff11e141a4fbbc.js":[{"id":"@babel/runtime/helpers/esm/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/asyncToGenerator.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"assets/src/bundles/browse/browse-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/browse/browse-utils.js"},{"id":"assets/src/bundles/browse/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/browse/index.js"},{"id":"assets/src/bundles/browse/origin-search.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/browse/origin-search.js"},{"id":"assets/src/bundles/browse/snapshot-navigation.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/browse/snapshot-navigation.js"},{"id":"assets/src/bundles/browse/swhid-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/browse/swhid-utils.js"},{"id":"assets/src/thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.js","licenses":[{"name":"GNU General Public License (GPL) version 3","url":"http://www.gnu.org/licenses/gpl-3.0.html","copy_url":"/static/jssources/assets/src/thirdparty/jquery.tabSlideOut/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.js"},{"id":"assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/constants.js"},{"id":"assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/functions.js"},{"id":"clipboard/dist/clipboard.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/clipboard/LICENSE.txt"}],"src_url":"/static/jssources/clipboard/dist/clipboard.js"},{"id":"js-cookie/dist/js.cookie.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/dist/js.cookie.mjs"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"}],"/static/js/guided_tour.6fdb762b8416936b3c84.js":[{"id":"assets/src/bundles/guided_tour/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/guided_tour/index.js"},{"id":"assets/src/utils/scrolling.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/scrolling.js"},{"id":"intro.js/intro.module.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/intro.js/license.md"}],"src_url":"/static/jssources/intro.js/intro.module.js"}],"/static/js/origin.278a63bfc40cb4173975.js":[{"id":"@babel/runtime/helpers/esm/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/asyncToGenerator.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"assets/src/bundles/origin/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/origin/index.js"},{"id":"assets/src/bundles/origin/utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/origin/utils.js"},{"id":"assets/src/bundles/origin/visits-calendar.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/origin/visits-calendar.js"},{"id":"assets/src/bundles/origin/visits-histogram.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/origin/visits-histogram.js"},{"id":"assets/src/bundles/origin/visits-reporting.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/origin/visits-reporting.js"},{"id":"hex-rgb/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/hex-rgb/license.txt"}],"src_url":"/static/jssources/hex-rgb/index.js"},{"id":"js-year-calendar/dist/js-year-calendar.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/js-year-calendar/LICENSE.txt"}],"src_url":"/static/jssources/js-year-calendar/dist/js-year-calendar.js"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"}],"/static/js/revision.52cc3dd3b75a01c492af.js":[{"id":"@babel/runtime/helpers/esm/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/asyncToGenerator.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"assets/src/bundles/revision/diff-panel.ejs","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/revision/diff-panel.ejs"},{"id":"assets/src/bundles/revision/diff-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/revision/diff-utils.js"},{"id":"assets/src/bundles/revision/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/revision/index.js"},{"id":"assets/src/bundles/revision/log-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/revision/log-utils.js"},{"id":"assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/constants.js"},{"id":"assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/functions.js"},{"id":"js-cookie/dist/js.cookie.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/dist/js.cookie.mjs"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"},{"id":"waypoints/lib/jquery.waypoints.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/waypoints/licenses.txt.txt"}],"src_url":"/static/jssources/waypoints/lib/jquery.waypoints.js"}],"/static/js/save.9fc62242a6cdffdaad2c.js":[{"id":"@babel/runtime/helpers/esm/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/asyncToGenerator.js"},{"id":"@babel/runtime/helpers/esm/inherits.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/inherits.js"},{"id":"@babel/runtime/helpers/esm/setPrototypeOf.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/setPrototypeOf.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"assets/src/bundles/save/artifact-form-row.ejs","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/save/artifact-form-row.ejs"},{"id":"assets/src/bundles/save/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/save/index.js"},{"id":"assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/constants.js"},{"id":"assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/functions.js"},{"id":"assets/src/utils/requests-filter-checkbox.ejs","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/requests-filter-checkbox.ejs"},{"id":"js-cookie/dist/js.cookie.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/dist/js.cookie.mjs"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"}],"/static/js/vault.e2e8f042b9c742390872.js":[{"id":"@babel/runtime/helpers/esm/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/asyncToGenerator.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"assets/src/bundles/vault/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/vault/index.js"},{"id":"assets/src/bundles/vault/vault-create-tasks.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/vault/vault-create-tasks.js"},{"id":"assets/src/bundles/vault/vault-table-row.ejs","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/vault/vault-table-row.ejs"},{"id":"assets/src/bundles/vault/vault-ui.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/vault/vault-ui.js"},{"id":"assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/functions.js"},{"id":"email-validator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/email-validator/LICENSE.txt"}],"src_url":"/static/jssources/email-validator/index.js"},{"id":"js-cookie/dist/js.cookie.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/dist/js.cookie.mjs"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"}],"/static/js/vendors.d43ce19d06b487934799.js":[{"id":"admin-lte/dist/js/adminlte.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/admin-lte/LICENSE.txt"}],"src_url":"/static/jssources/admin-lte/dist/js/adminlte.js"},{"id":"assets/src/bundles/vendors/elementsfrompoint-polyfill.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/vendors/elementsfrompoint-polyfill.js"},{"id":"assets/src/bundles/vendors/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/vendors/index.js"},{"id":"bootstrap/js/dist/alert.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/alert.js"},{"id":"bootstrap/js/dist/button.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/button.js"},{"id":"bootstrap/js/dist/carousel.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/carousel.js"},{"id":"bootstrap/js/dist/collapse.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/collapse.js"},{"id":"bootstrap/js/dist/dropdown.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/dropdown.js"},{"id":"bootstrap/js/dist/modal.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/modal.js"},{"id":"bootstrap/js/dist/popover.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/popover.js"},{"id":"bootstrap/js/dist/scrollspy.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/scrollspy.js"},{"id":"bootstrap/js/dist/tab.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/tab.js"},{"id":"bootstrap/js/dist/tooltip.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/tooltip.js"},{"id":"bootstrap/js/dist/util.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/bootstrap/LICENSE.txt"}],"src_url":"/static/jssources/bootstrap/js/dist/util.js"},{"id":"chosen-js/chosen.jquery.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/chosen-js/LICENSE.md"}],"src_url":"/static/jssources/chosen-js/chosen.jquery.js"},{"id":"core-js/internals/a-callable.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/a-callable.js"},{"id":"core-js/internals/a-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/a-constructor.js"},{"id":"core-js/internals/a-possible-prototype.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/a-possible-prototype.js"},{"id":"core-js/internals/add-to-unscopables.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/add-to-unscopables.js"},{"id":"core-js/internals/advance-string-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/advance-string-index.js"},{"id":"core-js/internals/an-instance.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/an-instance.js"},{"id":"core-js/internals/an-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/an-object.js"},{"id":"core-js/internals/array-buffer-native.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-buffer-native.js"},{"id":"core-js/internals/array-buffer-non-extensible.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-buffer-non-extensible.js"},{"id":"core-js/internals/array-buffer-view-core.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-buffer-view-core.js"},{"id":"core-js/internals/array-buffer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-buffer.js"},{"id":"core-js/internals/array-copy-within.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-copy-within.js"},{"id":"core-js/internals/array-fill.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-fill.js"},{"id":"core-js/internals/array-for-each.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-for-each.js"},{"id":"core-js/internals/array-from-constructor-and-list.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-from-constructor-and-list.js"},{"id":"core-js/internals/array-from.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-from.js"},{"id":"core-js/internals/array-includes.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-includes.js"},{"id":"core-js/internals/array-iteration.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-iteration.js"},{"id":"core-js/internals/array-last-index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-last-index-of.js"},{"id":"core-js/internals/array-method-has-species-support.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-method-has-species-support.js"},{"id":"core-js/internals/array-method-is-strict.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-method-is-strict.js"},{"id":"core-js/internals/array-reduce.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-reduce.js"},{"id":"core-js/internals/array-slice-simple.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-slice-simple.js"},{"id":"core-js/internals/array-slice.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-slice.js"},{"id":"core-js/internals/array-sort.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-sort.js"},{"id":"core-js/internals/array-species-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-species-constructor.js"},{"id":"core-js/internals/array-species-create.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/array-species-create.js"},{"id":"core-js/internals/base64-map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/base64-map.js"},{"id":"core-js/internals/call-with-safe-iteration-closing.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/call-with-safe-iteration-closing.js"},{"id":"core-js/internals/check-correctness-of-iteration.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/check-correctness-of-iteration.js"},{"id":"core-js/internals/classof-raw.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/classof-raw.js"},{"id":"core-js/internals/classof.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/classof.js"},{"id":"core-js/internals/clear-error-stack.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/clear-error-stack.js"},{"id":"core-js/internals/collection-strong.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/collection-strong.js"},{"id":"core-js/internals/collection-weak.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/collection-weak.js"},{"id":"core-js/internals/collection.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/collection.js"},{"id":"core-js/internals/copy-constructor-properties.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/copy-constructor-properties.js"},{"id":"core-js/internals/correct-is-regexp-logic.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/correct-is-regexp-logic.js"},{"id":"core-js/internals/correct-prototype-getter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/correct-prototype-getter.js"},{"id":"core-js/internals/create-html.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-html.js"},{"id":"core-js/internals/create-iterator-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-iterator-constructor.js"},{"id":"core-js/internals/create-non-enumerable-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-non-enumerable-property.js"},{"id":"core-js/internals/create-property-descriptor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-property-descriptor.js"},{"id":"core-js/internals/create-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/create-property.js"},{"id":"core-js/internals/date-to-iso-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/date-to-iso-string.js"},{"id":"core-js/internals/date-to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/date-to-primitive.js"},{"id":"core-js/internals/define-built-in-accessor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/define-built-in-accessor.js"},{"id":"core-js/internals/define-built-in.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/define-built-in.js"},{"id":"core-js/internals/define-built-ins.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/define-built-ins.js"},{"id":"core-js/internals/define-iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/define-iterator.js"},{"id":"core-js/internals/define-well-known-symbol.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/define-well-known-symbol.js"},{"id":"core-js/internals/descriptors.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/descriptors.js"},{"id":"core-js/internals/document-create-element.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/document-create-element.js"},{"id":"core-js/internals/dom-exception-constants.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/dom-exception-constants.js"},{"id":"core-js/internals/dom-iterables.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/dom-iterables.js"},{"id":"core-js/internals/dom-token-list-prototype.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/dom-token-list-prototype.js"},{"id":"core-js/internals/engine-ff-version.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-ff-version.js"},{"id":"core-js/internals/engine-is-browser.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-is-browser.js"},{"id":"core-js/internals/engine-is-ie-or-edge.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-is-ie-or-edge.js"},{"id":"core-js/internals/engine-is-ios-pebble.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-is-ios-pebble.js"},{"id":"core-js/internals/engine-is-ios.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-is-ios.js"},{"id":"core-js/internals/engine-is-node.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-is-node.js"},{"id":"core-js/internals/engine-is-webos-webkit.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-is-webos-webkit.js"},{"id":"core-js/internals/engine-user-agent.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-user-agent.js"},{"id":"core-js/internals/engine-v8-version.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-v8-version.js"},{"id":"core-js/internals/engine-webkit-version.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/engine-webkit-version.js"},{"id":"core-js/internals/enum-bug-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/enum-bug-keys.js"},{"id":"core-js/internals/error-stack-installable.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/error-stack-installable.js"},{"id":"core-js/internals/error-to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/error-to-string.js"},{"id":"core-js/internals/export.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/export.js"},{"id":"core-js/internals/fails.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/fails.js"},{"id":"core-js/internals/fix-regexp-well-known-symbol-logic.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/fix-regexp-well-known-symbol-logic.js"},{"id":"core-js/internals/flatten-into-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/flatten-into-array.js"},{"id":"core-js/internals/freezing.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/freezing.js"},{"id":"core-js/internals/function-apply.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/function-apply.js"},{"id":"core-js/internals/function-bind-context.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/function-bind-context.js"},{"id":"core-js/internals/function-bind-native.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/function-bind-native.js"},{"id":"core-js/internals/function-bind.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/function-bind.js"},{"id":"core-js/internals/function-call.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/function-call.js"},{"id":"core-js/internals/function-name.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/function-name.js"},{"id":"core-js/internals/function-uncurry-this.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/function-uncurry-this.js"},{"id":"core-js/internals/get-built-in.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/get-built-in.js"},{"id":"core-js/internals/get-iterator-method.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/get-iterator-method.js"},{"id":"core-js/internals/get-iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/get-iterator.js"},{"id":"core-js/internals/get-method.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/get-method.js"},{"id":"core-js/internals/get-substitution.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/get-substitution.js"},{"id":"core-js/internals/global.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/global.js"},{"id":"core-js/internals/has-own-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/has-own-property.js"},{"id":"core-js/internals/hidden-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/hidden-keys.js"},{"id":"core-js/internals/host-report-errors.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/host-report-errors.js"},{"id":"core-js/internals/html.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/html.js"},{"id":"core-js/internals/ie8-dom-define.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/ie8-dom-define.js"},{"id":"core-js/internals/ieee754.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/ieee754.js"},{"id":"core-js/internals/indexed-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/indexed-object.js"},{"id":"core-js/internals/inherit-if-required.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/inherit-if-required.js"},{"id":"core-js/internals/inspect-source.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/inspect-source.js"},{"id":"core-js/internals/install-error-cause.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/install-error-cause.js"},{"id":"core-js/internals/internal-metadata.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/internal-metadata.js"},{"id":"core-js/internals/internal-state.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/internal-state.js"},{"id":"core-js/internals/is-array-iterator-method.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-array-iterator-method.js"},{"id":"core-js/internals/is-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-array.js"},{"id":"core-js/internals/is-callable.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-callable.js"},{"id":"core-js/internals/is-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-constructor.js"},{"id":"core-js/internals/is-data-descriptor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-data-descriptor.js"},{"id":"core-js/internals/is-forced.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-forced.js"},{"id":"core-js/internals/is-integral-number.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-integral-number.js"},{"id":"core-js/internals/is-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-object.js"},{"id":"core-js/internals/is-pure.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-pure.js"},{"id":"core-js/internals/is-regexp.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-regexp.js"},{"id":"core-js/internals/is-symbol.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/is-symbol.js"},{"id":"core-js/internals/iterate.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/iterate.js"},{"id":"core-js/internals/iterator-close.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/iterator-close.js"},{"id":"core-js/internals/iterators-core.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/iterators-core.js"},{"id":"core-js/internals/iterators.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/iterators.js"},{"id":"core-js/internals/length-of-array-like.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/length-of-array-like.js"},{"id":"core-js/internals/make-built-in.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/make-built-in.js"},{"id":"core-js/internals/math-expm1.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/math-expm1.js"},{"id":"core-js/internals/math-fround.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/math-fround.js"},{"id":"core-js/internals/math-log10.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/math-log10.js"},{"id":"core-js/internals/math-log1p.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/math-log1p.js"},{"id":"core-js/internals/math-sign.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/math-sign.js"},{"id":"core-js/internals/microtask.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/microtask.js"},{"id":"core-js/internals/native-symbol-registry.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/native-symbol-registry.js"},{"id":"core-js/internals/native-symbol.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/native-symbol.js"},{"id":"core-js/internals/native-url.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/native-url.js"},{"id":"core-js/internals/native-weak-map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/native-weak-map.js"},{"id":"core-js/internals/new-promise-capability.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/new-promise-capability.js"},{"id":"core-js/internals/normalize-string-argument.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/normalize-string-argument.js"},{"id":"core-js/internals/not-a-regexp.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/not-a-regexp.js"},{"id":"core-js/internals/number-is-finite.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/number-is-finite.js"},{"id":"core-js/internals/number-parse-float.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/number-parse-float.js"},{"id":"core-js/internals/number-parse-int.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/number-parse-int.js"},{"id":"core-js/internals/object-assign.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-assign.js"},{"id":"core-js/internals/object-create.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-create.js"},{"id":"core-js/internals/object-define-properties.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-define-properties.js"},{"id":"core-js/internals/object-define-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-define-property.js"},{"id":"core-js/internals/object-get-own-property-descriptor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-own-property-descriptor.js"},{"id":"core-js/internals/object-get-own-property-names-external.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-own-property-names-external.js"},{"id":"core-js/internals/object-get-own-property-names.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-own-property-names.js"},{"id":"core-js/internals/object-get-own-property-symbols.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-own-property-symbols.js"},{"id":"core-js/internals/object-get-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-get-prototype-of.js"},{"id":"core-js/internals/object-is-extensible.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-is-extensible.js"},{"id":"core-js/internals/object-is-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-is-prototype-of.js"},{"id":"core-js/internals/object-keys-internal.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-keys-internal.js"},{"id":"core-js/internals/object-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-keys.js"},{"id":"core-js/internals/object-property-is-enumerable.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-property-is-enumerable.js"},{"id":"core-js/internals/object-prototype-accessors-forced.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-prototype-accessors-forced.js"},{"id":"core-js/internals/object-set-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-set-prototype-of.js"},{"id":"core-js/internals/object-to-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-to-array.js"},{"id":"core-js/internals/object-to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/object-to-string.js"},{"id":"core-js/internals/ordinary-to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/ordinary-to-primitive.js"},{"id":"core-js/internals/own-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/own-keys.js"},{"id":"core-js/internals/path.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/path.js"},{"id":"core-js/internals/perform.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/perform.js"},{"id":"core-js/internals/promise-constructor-detection.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/promise-constructor-detection.js"},{"id":"core-js/internals/promise-native-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/promise-native-constructor.js"},{"id":"core-js/internals/promise-resolve.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/promise-resolve.js"},{"id":"core-js/internals/promise-statics-incorrect-iteration.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/promise-statics-incorrect-iteration.js"},{"id":"core-js/internals/proxy-accessor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/proxy-accessor.js"},{"id":"core-js/internals/queue.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/queue.js"},{"id":"core-js/internals/regexp-exec-abstract.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-exec-abstract.js"},{"id":"core-js/internals/regexp-exec.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-exec.js"},{"id":"core-js/internals/regexp-flags.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-flags.js"},{"id":"core-js/internals/regexp-get-flags.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-get-flags.js"},{"id":"core-js/internals/regexp-sticky-helpers.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-sticky-helpers.js"},{"id":"core-js/internals/regexp-unsupported-dot-all.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-unsupported-dot-all.js"},{"id":"core-js/internals/regexp-unsupported-ncg.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/regexp-unsupported-ncg.js"},{"id":"core-js/internals/require-object-coercible.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/require-object-coercible.js"},{"id":"core-js/internals/same-value.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/same-value.js"},{"id":"core-js/internals/schedulers-fix.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/schedulers-fix.js"},{"id":"core-js/internals/set-global.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/set-global.js"},{"id":"core-js/internals/set-species.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/set-species.js"},{"id":"core-js/internals/set-to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/set-to-string-tag.js"},{"id":"core-js/internals/shared-key.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/shared-key.js"},{"id":"core-js/internals/shared-store.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/shared-store.js"},{"id":"core-js/internals/shared.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/shared.js"},{"id":"core-js/internals/species-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/species-constructor.js"},{"id":"core-js/internals/string-html-forced.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-html-forced.js"},{"id":"core-js/internals/string-multibyte.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-multibyte.js"},{"id":"core-js/internals/string-pad-webkit-bug.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-pad-webkit-bug.js"},{"id":"core-js/internals/string-pad.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-pad.js"},{"id":"core-js/internals/string-punycode-to-ascii.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-punycode-to-ascii.js"},{"id":"core-js/internals/string-repeat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-repeat.js"},{"id":"core-js/internals/string-trim-end.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-trim-end.js"},{"id":"core-js/internals/string-trim-forced.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-trim-forced.js"},{"id":"core-js/internals/string-trim-start.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-trim-start.js"},{"id":"core-js/internals/string-trim.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/string-trim.js"},{"id":"core-js/internals/symbol-define-to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/symbol-define-to-primitive.js"},{"id":"core-js/internals/task.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/task.js"},{"id":"core-js/internals/this-number-value.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/this-number-value.js"},{"id":"core-js/internals/to-absolute-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-absolute-index.js"},{"id":"core-js/internals/to-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-index.js"},{"id":"core-js/internals/to-indexed-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-indexed-object.js"},{"id":"core-js/internals/to-integer-or-infinity.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-integer-or-infinity.js"},{"id":"core-js/internals/to-length.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-length.js"},{"id":"core-js/internals/to-object.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-object.js"},{"id":"core-js/internals/to-offset.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-offset.js"},{"id":"core-js/internals/to-positive-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-positive-integer.js"},{"id":"core-js/internals/to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-primitive.js"},{"id":"core-js/internals/to-property-key.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-property-key.js"},{"id":"core-js/internals/to-string-tag-support.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-string-tag-support.js"},{"id":"core-js/internals/to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/to-string.js"},{"id":"core-js/internals/try-node-require.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/try-node-require.js"},{"id":"core-js/internals/try-to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/try-to-string.js"},{"id":"core-js/internals/typed-array-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/typed-array-constructor.js"},{"id":"core-js/internals/typed-array-constructors-require-wrappers.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/typed-array-constructors-require-wrappers.js"},{"id":"core-js/internals/typed-array-from-species-and-list.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/typed-array-from-species-and-list.js"},{"id":"core-js/internals/typed-array-from.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/typed-array-from.js"},{"id":"core-js/internals/typed-array-species-constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/typed-array-species-constructor.js"},{"id":"core-js/internals/uid.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/uid.js"},{"id":"core-js/internals/use-symbol-as-uid.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/use-symbol-as-uid.js"},{"id":"core-js/internals/v8-prototype-define-bug.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/v8-prototype-define-bug.js"},{"id":"core-js/internals/validate-arguments-length.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/validate-arguments-length.js"},{"id":"core-js/internals/well-known-symbol-wrapped.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/well-known-symbol-wrapped.js"},{"id":"core-js/internals/well-known-symbol.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/well-known-symbol.js"},{"id":"core-js/internals/whitespaces.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/whitespaces.js"},{"id":"core-js/internals/wrap-error-constructor-with-cause.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/internals/wrap-error-constructor-with-cause.js"},{"id":"core-js/modules/es.aggregate-error.cause.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.aggregate-error.cause.js"},{"id":"core-js/modules/es.aggregate-error.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.aggregate-error.constructor.js"},{"id":"core-js/modules/es.aggregate-error.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.aggregate-error.js"},{"id":"core-js/modules/es.array-buffer.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array-buffer.constructor.js"},{"id":"core-js/modules/es.array-buffer.is-view.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array-buffer.is-view.js"},{"id":"core-js/modules/es.array-buffer.slice.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array-buffer.slice.js"},{"id":"core-js/modules/es.array.at.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.at.js"},{"id":"core-js/modules/es.array.concat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.concat.js"},{"id":"core-js/modules/es.array.copy-within.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.copy-within.js"},{"id":"core-js/modules/es.array.every.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.every.js"},{"id":"core-js/modules/es.array.fill.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.fill.js"},{"id":"core-js/modules/es.array.filter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.filter.js"},{"id":"core-js/modules/es.array.find-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.find-index.js"},{"id":"core-js/modules/es.array.find.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.find.js"},{"id":"core-js/modules/es.array.flat-map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.flat-map.js"},{"id":"core-js/modules/es.array.flat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.flat.js"},{"id":"core-js/modules/es.array.for-each.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.for-each.js"},{"id":"core-js/modules/es.array.from.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.from.js"},{"id":"core-js/modules/es.array.includes.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.includes.js"},{"id":"core-js/modules/es.array.index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.index-of.js"},{"id":"core-js/modules/es.array.is-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.is-array.js"},{"id":"core-js/modules/es.array.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.iterator.js"},{"id":"core-js/modules/es.array.join.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.join.js"},{"id":"core-js/modules/es.array.last-index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.last-index-of.js"},{"id":"core-js/modules/es.array.map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.map.js"},{"id":"core-js/modules/es.array.of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.of.js"},{"id":"core-js/modules/es.array.reduce-right.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.reduce-right.js"},{"id":"core-js/modules/es.array.reduce.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.reduce.js"},{"id":"core-js/modules/es.array.reverse.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.reverse.js"},{"id":"core-js/modules/es.array.slice.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.slice.js"},{"id":"core-js/modules/es.array.some.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.some.js"},{"id":"core-js/modules/es.array.sort.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.sort.js"},{"id":"core-js/modules/es.array.species.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.species.js"},{"id":"core-js/modules/es.array.splice.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.splice.js"},{"id":"core-js/modules/es.array.unscopables.flat-map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.unscopables.flat-map.js"},{"id":"core-js/modules/es.array.unscopables.flat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.array.unscopables.flat.js"},{"id":"core-js/modules/es.data-view.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.data-view.constructor.js"},{"id":"core-js/modules/es.data-view.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.data-view.js"},{"id":"core-js/modules/es.date.get-year.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.get-year.js"},{"id":"core-js/modules/es.date.now.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.now.js"},{"id":"core-js/modules/es.date.set-year.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.set-year.js"},{"id":"core-js/modules/es.date.to-gmt-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.to-gmt-string.js"},{"id":"core-js/modules/es.date.to-iso-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.to-iso-string.js"},{"id":"core-js/modules/es.date.to-json.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.to-json.js"},{"id":"core-js/modules/es.date.to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.to-primitive.js"},{"id":"core-js/modules/es.date.to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.date.to-string.js"},{"id":"core-js/modules/es.error.cause.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.error.cause.js"},{"id":"core-js/modules/es.error.to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.error.to-string.js"},{"id":"core-js/modules/es.escape.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.escape.js"},{"id":"core-js/modules/es.function.bind.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.function.bind.js"},{"id":"core-js/modules/es.function.has-instance.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.function.has-instance.js"},{"id":"core-js/modules/es.function.name.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.function.name.js"},{"id":"core-js/modules/es.global-this.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.global-this.js"},{"id":"core-js/modules/es.json.stringify.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.json.stringify.js"},{"id":"core-js/modules/es.json.to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.json.to-string-tag.js"},{"id":"core-js/modules/es.map.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.map.constructor.js"},{"id":"core-js/modules/es.map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.map.js"},{"id":"core-js/modules/es.math.acosh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.acosh.js"},{"id":"core-js/modules/es.math.asinh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.asinh.js"},{"id":"core-js/modules/es.math.atanh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.atanh.js"},{"id":"core-js/modules/es.math.cbrt.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.cbrt.js"},{"id":"core-js/modules/es.math.clz32.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.clz32.js"},{"id":"core-js/modules/es.math.cosh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.cosh.js"},{"id":"core-js/modules/es.math.expm1.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.expm1.js"},{"id":"core-js/modules/es.math.fround.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.fround.js"},{"id":"core-js/modules/es.math.hypot.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.hypot.js"},{"id":"core-js/modules/es.math.imul.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.imul.js"},{"id":"core-js/modules/es.math.log10.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.log10.js"},{"id":"core-js/modules/es.math.log1p.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.log1p.js"},{"id":"core-js/modules/es.math.log2.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.log2.js"},{"id":"core-js/modules/es.math.sign.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.sign.js"},{"id":"core-js/modules/es.math.sinh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.sinh.js"},{"id":"core-js/modules/es.math.tanh.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.tanh.js"},{"id":"core-js/modules/es.math.to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.to-string-tag.js"},{"id":"core-js/modules/es.math.trunc.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.math.trunc.js"},{"id":"core-js/modules/es.number.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.constructor.js"},{"id":"core-js/modules/es.number.epsilon.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.epsilon.js"},{"id":"core-js/modules/es.number.is-finite.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.is-finite.js"},{"id":"core-js/modules/es.number.is-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.is-integer.js"},{"id":"core-js/modules/es.number.is-nan.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.is-nan.js"},{"id":"core-js/modules/es.number.is-safe-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.is-safe-integer.js"},{"id":"core-js/modules/es.number.max-safe-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.max-safe-integer.js"},{"id":"core-js/modules/es.number.min-safe-integer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.min-safe-integer.js"},{"id":"core-js/modules/es.number.parse-float.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.parse-float.js"},{"id":"core-js/modules/es.number.parse-int.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.parse-int.js"},{"id":"core-js/modules/es.number.to-exponential.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.to-exponential.js"},{"id":"core-js/modules/es.number.to-fixed.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.to-fixed.js"},{"id":"core-js/modules/es.number.to-precision.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.number.to-precision.js"},{"id":"core-js/modules/es.object.assign.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.assign.js"},{"id":"core-js/modules/es.object.create.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.create.js"},{"id":"core-js/modules/es.object.define-getter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.define-getter.js"},{"id":"core-js/modules/es.object.define-properties.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.define-properties.js"},{"id":"core-js/modules/es.object.define-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.define-property.js"},{"id":"core-js/modules/es.object.define-setter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.define-setter.js"},{"id":"core-js/modules/es.object.entries.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.entries.js"},{"id":"core-js/modules/es.object.freeze.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.freeze.js"},{"id":"core-js/modules/es.object.from-entries.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.from-entries.js"},{"id":"core-js/modules/es.object.get-own-property-descriptor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.get-own-property-descriptor.js"},{"id":"core-js/modules/es.object.get-own-property-descriptors.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.get-own-property-descriptors.js"},{"id":"core-js/modules/es.object.get-own-property-names.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.get-own-property-names.js"},{"id":"core-js/modules/es.object.get-own-property-symbols.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.get-own-property-symbols.js"},{"id":"core-js/modules/es.object.get-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.get-prototype-of.js"},{"id":"core-js/modules/es.object.has-own.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.has-own.js"},{"id":"core-js/modules/es.object.is-extensible.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.is-extensible.js"},{"id":"core-js/modules/es.object.is-frozen.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.is-frozen.js"},{"id":"core-js/modules/es.object.is-sealed.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.is-sealed.js"},{"id":"core-js/modules/es.object.is.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.is.js"},{"id":"core-js/modules/es.object.keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.keys.js"},{"id":"core-js/modules/es.object.lookup-getter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.lookup-getter.js"},{"id":"core-js/modules/es.object.lookup-setter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.lookup-setter.js"},{"id":"core-js/modules/es.object.prevent-extensions.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.prevent-extensions.js"},{"id":"core-js/modules/es.object.seal.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.seal.js"},{"id":"core-js/modules/es.object.set-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.set-prototype-of.js"},{"id":"core-js/modules/es.object.to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.to-string.js"},{"id":"core-js/modules/es.object.values.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.object.values.js"},{"id":"core-js/modules/es.parse-float.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.parse-float.js"},{"id":"core-js/modules/es.parse-int.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.parse-int.js"},{"id":"core-js/modules/es.promise.all-settled.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.all-settled.js"},{"id":"core-js/modules/es.promise.all.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.all.js"},{"id":"core-js/modules/es.promise.any.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.any.js"},{"id":"core-js/modules/es.promise.catch.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.catch.js"},{"id":"core-js/modules/es.promise.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.constructor.js"},{"id":"core-js/modules/es.promise.finally.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.finally.js"},{"id":"core-js/modules/es.promise.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.js"},{"id":"core-js/modules/es.promise.race.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.race.js"},{"id":"core-js/modules/es.promise.reject.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.reject.js"},{"id":"core-js/modules/es.promise.resolve.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.promise.resolve.js"},{"id":"core-js/modules/es.reflect.apply.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.apply.js"},{"id":"core-js/modules/es.reflect.construct.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.construct.js"},{"id":"core-js/modules/es.reflect.define-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.define-property.js"},{"id":"core-js/modules/es.reflect.delete-property.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.delete-property.js"},{"id":"core-js/modules/es.reflect.get-own-property-descriptor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.get-own-property-descriptor.js"},{"id":"core-js/modules/es.reflect.get-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.get-prototype-of.js"},{"id":"core-js/modules/es.reflect.get.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.get.js"},{"id":"core-js/modules/es.reflect.has.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.has.js"},{"id":"core-js/modules/es.reflect.is-extensible.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.is-extensible.js"},{"id":"core-js/modules/es.reflect.own-keys.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.own-keys.js"},{"id":"core-js/modules/es.reflect.prevent-extensions.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.prevent-extensions.js"},{"id":"core-js/modules/es.reflect.set-prototype-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.set-prototype-of.js"},{"id":"core-js/modules/es.reflect.set.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.set.js"},{"id":"core-js/modules/es.reflect.to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.reflect.to-string-tag.js"},{"id":"core-js/modules/es.regexp.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.constructor.js"},{"id":"core-js/modules/es.regexp.dot-all.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.dot-all.js"},{"id":"core-js/modules/es.regexp.exec.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.exec.js"},{"id":"core-js/modules/es.regexp.flags.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.flags.js"},{"id":"core-js/modules/es.regexp.sticky.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.sticky.js"},{"id":"core-js/modules/es.regexp.test.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.test.js"},{"id":"core-js/modules/es.regexp.to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.regexp.to-string.js"},{"id":"core-js/modules/es.set.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.set.constructor.js"},{"id":"core-js/modules/es.set.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.set.js"},{"id":"core-js/modules/es.string.anchor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.anchor.js"},{"id":"core-js/modules/es.string.at-alternative.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.at-alternative.js"},{"id":"core-js/modules/es.string.big.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.big.js"},{"id":"core-js/modules/es.string.blink.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.blink.js"},{"id":"core-js/modules/es.string.bold.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.bold.js"},{"id":"core-js/modules/es.string.code-point-at.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.code-point-at.js"},{"id":"core-js/modules/es.string.ends-with.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.ends-with.js"},{"id":"core-js/modules/es.string.fixed.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.fixed.js"},{"id":"core-js/modules/es.string.fontcolor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.fontcolor.js"},{"id":"core-js/modules/es.string.fontsize.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.fontsize.js"},{"id":"core-js/modules/es.string.from-code-point.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.from-code-point.js"},{"id":"core-js/modules/es.string.includes.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.includes.js"},{"id":"core-js/modules/es.string.italics.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.italics.js"},{"id":"core-js/modules/es.string.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.iterator.js"},{"id":"core-js/modules/es.string.link.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.link.js"},{"id":"core-js/modules/es.string.match-all.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.match-all.js"},{"id":"core-js/modules/es.string.match.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.match.js"},{"id":"core-js/modules/es.string.pad-end.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.pad-end.js"},{"id":"core-js/modules/es.string.pad-start.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.pad-start.js"},{"id":"core-js/modules/es.string.raw.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.raw.js"},{"id":"core-js/modules/es.string.repeat.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.repeat.js"},{"id":"core-js/modules/es.string.replace-all.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.replace-all.js"},{"id":"core-js/modules/es.string.replace.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.replace.js"},{"id":"core-js/modules/es.string.search.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.search.js"},{"id":"core-js/modules/es.string.small.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.small.js"},{"id":"core-js/modules/es.string.split.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.split.js"},{"id":"core-js/modules/es.string.starts-with.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.starts-with.js"},{"id":"core-js/modules/es.string.strike.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.strike.js"},{"id":"core-js/modules/es.string.sub.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.sub.js"},{"id":"core-js/modules/es.string.substr.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.substr.js"},{"id":"core-js/modules/es.string.sup.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.sup.js"},{"id":"core-js/modules/es.string.trim-end.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.trim-end.js"},{"id":"core-js/modules/es.string.trim-left.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.trim-left.js"},{"id":"core-js/modules/es.string.trim-right.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.trim-right.js"},{"id":"core-js/modules/es.string.trim-start.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.trim-start.js"},{"id":"core-js/modules/es.string.trim.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.string.trim.js"},{"id":"core-js/modules/es.symbol.async-iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.async-iterator.js"},{"id":"core-js/modules/es.symbol.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.constructor.js"},{"id":"core-js/modules/es.symbol.description.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.description.js"},{"id":"core-js/modules/es.symbol.for.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.for.js"},{"id":"core-js/modules/es.symbol.has-instance.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.has-instance.js"},{"id":"core-js/modules/es.symbol.is-concat-spreadable.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.is-concat-spreadable.js"},{"id":"core-js/modules/es.symbol.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.iterator.js"},{"id":"core-js/modules/es.symbol.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.js"},{"id":"core-js/modules/es.symbol.key-for.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.key-for.js"},{"id":"core-js/modules/es.symbol.match-all.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.match-all.js"},{"id":"core-js/modules/es.symbol.match.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.match.js"},{"id":"core-js/modules/es.symbol.replace.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.replace.js"},{"id":"core-js/modules/es.symbol.search.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.search.js"},{"id":"core-js/modules/es.symbol.species.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.species.js"},{"id":"core-js/modules/es.symbol.split.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.split.js"},{"id":"core-js/modules/es.symbol.to-primitive.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.to-primitive.js"},{"id":"core-js/modules/es.symbol.to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.to-string-tag.js"},{"id":"core-js/modules/es.symbol.unscopables.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.symbol.unscopables.js"},{"id":"core-js/modules/es.typed-array.at.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.at.js"},{"id":"core-js/modules/es.typed-array.copy-within.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.copy-within.js"},{"id":"core-js/modules/es.typed-array.every.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.every.js"},{"id":"core-js/modules/es.typed-array.fill.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.fill.js"},{"id":"core-js/modules/es.typed-array.filter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.filter.js"},{"id":"core-js/modules/es.typed-array.find-index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.find-index.js"},{"id":"core-js/modules/es.typed-array.find.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.find.js"},{"id":"core-js/modules/es.typed-array.float32-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.float32-array.js"},{"id":"core-js/modules/es.typed-array.float64-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.float64-array.js"},{"id":"core-js/modules/es.typed-array.for-each.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.for-each.js"},{"id":"core-js/modules/es.typed-array.from.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.from.js"},{"id":"core-js/modules/es.typed-array.includes.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.includes.js"},{"id":"core-js/modules/es.typed-array.index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.index-of.js"},{"id":"core-js/modules/es.typed-array.int16-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.int16-array.js"},{"id":"core-js/modules/es.typed-array.int32-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.int32-array.js"},{"id":"core-js/modules/es.typed-array.int8-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.int8-array.js"},{"id":"core-js/modules/es.typed-array.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.iterator.js"},{"id":"core-js/modules/es.typed-array.join.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.join.js"},{"id":"core-js/modules/es.typed-array.last-index-of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.last-index-of.js"},{"id":"core-js/modules/es.typed-array.map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.map.js"},{"id":"core-js/modules/es.typed-array.of.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.of.js"},{"id":"core-js/modules/es.typed-array.reduce-right.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.reduce-right.js"},{"id":"core-js/modules/es.typed-array.reduce.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.reduce.js"},{"id":"core-js/modules/es.typed-array.reverse.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.reverse.js"},{"id":"core-js/modules/es.typed-array.set.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.set.js"},{"id":"core-js/modules/es.typed-array.slice.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.slice.js"},{"id":"core-js/modules/es.typed-array.some.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.some.js"},{"id":"core-js/modules/es.typed-array.sort.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.sort.js"},{"id":"core-js/modules/es.typed-array.subarray.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.subarray.js"},{"id":"core-js/modules/es.typed-array.to-locale-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.to-locale-string.js"},{"id":"core-js/modules/es.typed-array.to-string.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.to-string.js"},{"id":"core-js/modules/es.typed-array.uint16-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.uint16-array.js"},{"id":"core-js/modules/es.typed-array.uint32-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.uint32-array.js"},{"id":"core-js/modules/es.typed-array.uint8-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.uint8-array.js"},{"id":"core-js/modules/es.typed-array.uint8-clamped-array.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.typed-array.uint8-clamped-array.js"},{"id":"core-js/modules/es.unescape.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.unescape.js"},{"id":"core-js/modules/es.weak-map.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.weak-map.constructor.js"},{"id":"core-js/modules/es.weak-map.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.weak-map.js"},{"id":"core-js/modules/es.weak-set.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.weak-set.constructor.js"},{"id":"core-js/modules/es.weak-set.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/es.weak-set.js"},{"id":"core-js/modules/web.atob.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.atob.js"},{"id":"core-js/modules/web.btoa.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.btoa.js"},{"id":"core-js/modules/web.clear-immediate.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.clear-immediate.js"},{"id":"core-js/modules/web.dom-collections.for-each.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.dom-collections.for-each.js"},{"id":"core-js/modules/web.dom-collections.iterator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.dom-collections.iterator.js"},{"id":"core-js/modules/web.dom-exception.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.dom-exception.constructor.js"},{"id":"core-js/modules/web.dom-exception.stack.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.dom-exception.stack.js"},{"id":"core-js/modules/web.dom-exception.to-string-tag.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.dom-exception.to-string-tag.js"},{"id":"core-js/modules/web.immediate.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.immediate.js"},{"id":"core-js/modules/web.queue-microtask.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.queue-microtask.js"},{"id":"core-js/modules/web.set-immediate.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.set-immediate.js"},{"id":"core-js/modules/web.set-interval.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.set-interval.js"},{"id":"core-js/modules/web.set-timeout.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.set-timeout.js"},{"id":"core-js/modules/web.structured-clone.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.structured-clone.js"},{"id":"core-js/modules/web.timers.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.timers.js"},{"id":"core-js/modules/web.url-search-params.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.url-search-params.constructor.js"},{"id":"core-js/modules/web.url-search-params.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.url-search-params.js"},{"id":"core-js/modules/web.url.constructor.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.url.constructor.js"},{"id":"core-js/modules/web.url.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.url.js"},{"id":"core-js/modules/web.url.to-json.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/modules/web.url.to-json.js"},{"id":"core-js/stable/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/core-js/LICENSE.txt"}],"src_url":"/static/jssources/core-js/stable/index.js"},{"id":"datatables.net-bs4/js/dataTables.bootstrap4.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/datatables.net-bs4/License.txt"}],"src_url":"/static/jssources/datatables.net-bs4/js/dataTables.bootstrap4.js"},{"id":"datatables.net/js/jquery.dataTables.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/datatables.net/License.txt"}],"src_url":"/static/jssources/datatables.net/js/jquery.dataTables.js"},{"id":"expose-loader/dist/runtime/getGlobalThis.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/expose-loader/LICENSE.txt"}],"src_url":"/static/jssources/expose-loader/dist/runtime/getGlobalThis.js"},{"id":"iframe-resizer/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iframe-resizer/LICENSE.txt"}],"src_url":"/static/jssources/iframe-resizer/index.js"},{"id":"iframe-resizer/js/iframeResizer.contentWindow.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iframe-resizer/LICENSE.txt"}],"src_url":"/static/jssources/iframe-resizer/js/iframeResizer.contentWindow.js"},{"id":"iframe-resizer/js/iframeResizer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iframe-resizer/LICENSE.txt"}],"src_url":"/static/jssources/iframe-resizer/js/iframeResizer.js"},{"id":"iframe-resizer/js/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iframe-resizer/LICENSE.txt"}],"src_url":"/static/jssources/iframe-resizer/js/index.js"},{"id":"jquery/dist/jquery-exposed.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/jquery/LICENSE.txt"}],"src_url":"/static/jssources/jquery/dist/jquery-exposed.js"},{"id":"jquery/dist/jquery.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/jquery/LICENSE.txt"}],"src_url":"/static/jssources/jquery/dist/jquery.js"},{"id":"js-cookie/dist/js.cookie.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/dist/js.cookie.mjs"},{"id":"popper.js/dist/esm/popper.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":""}],"src_url":"/static/jssources/popper.js/dist/esm/popper.js"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"},{"id":"whatwg-fetch/dist/fetch.umd.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/whatwg-fetch/LICENSE.txt"}],"src_url":"/static/jssources/whatwg-fetch/dist/fetch.umd.js"}],"/static/js/webapp.90df29dadbec1b5bf1f7.js":[{"id":"@babel/runtime/helpers/esm/asyncToGenerator.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/helpers/esm/asyncToGenerator.js"},{"id":"@babel/runtime/regenerator/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/@babel/runtime/LICENSE.txt"}],"src_url":"/static/jssources/@babel/runtime/regenerator/index.js"},{"id":"@sentry/browser/esm/backend.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/backend.js"},{"id":"@sentry/browser/esm/client.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/client.js"},{"id":"@sentry/browser/esm/eventbuilder.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/eventbuilder.js"},{"id":"@sentry/browser/esm/flags.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/flags.js"},{"id":"@sentry/browser/esm/helpers.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/helpers.js"},{"id":"@sentry/browser/esm/integrations/breadcrumbs.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/breadcrumbs.js"},{"id":"@sentry/browser/esm/integrations/dedupe.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/dedupe.js"},{"id":"@sentry/browser/esm/integrations/globalhandlers.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/globalhandlers.js"},{"id":"@sentry/browser/esm/integrations/linkederrors.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/linkederrors.js"},{"id":"@sentry/browser/esm/integrations/trycatch.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/trycatch.js"},{"id":"@sentry/browser/esm/integrations/useragent.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/integrations/useragent.js"},{"id":"@sentry/browser/esm/sdk.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/sdk.js"},{"id":"@sentry/browser/esm/stack-parsers.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/stack-parsers.js"},{"id":"@sentry/browser/esm/transports/base.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/transports/base.js"},{"id":"@sentry/browser/esm/transports/fetch.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/transports/fetch.js"},{"id":"@sentry/browser/esm/transports/new-fetch.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/transports/new-fetch.js"},{"id":"@sentry/browser/esm/transports/new-xhr.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/transports/new-xhr.js"},{"id":"@sentry/browser/esm/transports/utils.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/transports/utils.js"},{"id":"@sentry/browser/esm/transports/xhr.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/browser/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/browser/esm/transports/xhr.js"},{"id":"@sentry/core/esm/api.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/api.js"},{"id":"@sentry/core/esm/basebackend.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/basebackend.js"},{"id":"@sentry/core/esm/baseclient.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/baseclient.js"},{"id":"@sentry/core/esm/flags.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/flags.js"},{"id":"@sentry/core/esm/integration.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/integration.js"},{"id":"@sentry/core/esm/integrations/functiontostring.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/integrations/functiontostring.js"},{"id":"@sentry/core/esm/integrations/inboundfilters.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/integrations/inboundfilters.js"},{"id":"@sentry/core/esm/request.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/request.js"},{"id":"@sentry/core/esm/sdk.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/sdk.js"},{"id":"@sentry/core/esm/transports/base.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/transports/base.js"},{"id":"@sentry/core/esm/transports/noop.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/transports/noop.js"},{"id":"@sentry/core/esm/version.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/core/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/core/esm/version.js"},{"id":"@sentry/hub/esm/flags.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/hub/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/hub/esm/flags.js"},{"id":"@sentry/hub/esm/hub.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/hub/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/hub/esm/hub.js"},{"id":"@sentry/hub/esm/scope.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/hub/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/hub/esm/scope.js"},{"id":"@sentry/hub/esm/session.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/hub/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/hub/esm/session.js"},{"id":"@sentry/minimal/esm/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/minimal/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/minimal/esm/index.js"},{"id":"@sentry/types/esm/severity.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/types/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/types/esm/severity.js"},{"id":"@sentry/utils/esm/async.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/async.js"},{"id":"@sentry/utils/esm/browser.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/browser.js"},{"id":"@sentry/utils/esm/clientreport.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/clientreport.js"},{"id":"@sentry/utils/esm/dsn.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/dsn.js"},{"id":"@sentry/utils/esm/enums.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/enums.js"},{"id":"@sentry/utils/esm/env.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/env.js"},{"id":"@sentry/utils/esm/envelope.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/envelope.js"},{"id":"@sentry/utils/esm/error.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/error.js"},{"id":"@sentry/utils/esm/flags.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/flags.js"},{"id":"@sentry/utils/esm/global.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/global.js"},{"id":"@sentry/utils/esm/instrument.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/instrument.js"},{"id":"@sentry/utils/esm/is.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/is.js"},{"id":"@sentry/utils/esm/logger.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/logger.js"},{"id":"@sentry/utils/esm/memo.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/memo.js"},{"id":"@sentry/utils/esm/misc.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/misc.js"},{"id":"@sentry/utils/esm/node.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/node.js"},{"id":"@sentry/utils/esm/normalize.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/normalize.js"},{"id":"@sentry/utils/esm/object.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/object.js"},{"id":"@sentry/utils/esm/polyfill.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/polyfill.js"},{"id":"@sentry/utils/esm/promisebuffer.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/promisebuffer.js"},{"id":"@sentry/utils/esm/ratelimit.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/ratelimit.js"},{"id":"@sentry/utils/esm/severity.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/severity.js"},{"id":"@sentry/utils/esm/stacktrace.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/stacktrace.js"},{"id":"@sentry/utils/esm/status.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/status.js"},{"id":"@sentry/utils/esm/string.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/string.js"},{"id":"@sentry/utils/esm/supports.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/supports.js"},{"id":"@sentry/utils/esm/syncpromise.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/syncpromise.js"},{"id":"@sentry/utils/esm/time.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/@sentry/utils/LICENSE.txt"}],"src_url":"/static/jssources/@sentry/utils/esm/time.js"},{"id":"ansi_up/ansi_up.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/ansi_up/LICENSE.txt"}],"src_url":"/static/jssources/ansi_up/ansi_up.js"},{"id":"assets/src/bundles/webapp/badges.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/badges.js"},{"id":"assets/src/bundles/webapp/code-highlighting.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/code-highlighting.js"},{"id":"assets/src/bundles/webapp/history-counters.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/history-counters.js"},{"id":"assets/src/bundles/webapp/iframes.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/iframes.js"},{"id":"assets/src/bundles/webapp/index.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/index.js"},{"id":"assets/src/bundles/webapp/math-typesetting.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/math-typesetting.js"},{"id":"assets/src/bundles/webapp/notebook-rendering.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/notebook-rendering.js"},{"id":"assets/src/bundles/webapp/pdf-rendering.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/pdf-rendering.js"},{"id":"assets/src/bundles/webapp/readme-rendering.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/readme-rendering.js"},{"id":"assets/src/bundles/webapp/sentry.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/sentry.js"},{"id":"assets/src/bundles/webapp/status-widget.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/status-widget.js"},{"id":"assets/src/bundles/webapp/webapp-utils.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/webapp-utils.js"},{"id":"assets/src/bundles/webapp/xss-filtering.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/bundles/webapp/xss-filtering.js"},{"id":"assets/src/utils/constants.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/constants.js"},{"id":"assets/src/utils/functions.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/functions.js"},{"id":"dompurify/dist/purify.js","licenses":[{"name":"Mozilla Public License 2.0","url":"http://www.mozilla.org/MPL/2.0","copy_url":"/static/jssources/dompurify/LICENSE.txt"},{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/dompurify/LICENSE.txt"}],"src_url":"/static/jssources/dompurify/dist/purify.js"},{"id":"he/he.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/he/LICENSE-MIT.txt.txt"}],"src_url":"/static/jssources/he/he.js"},{"id":"html-encoder-decoder/lib/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/html-encoder-decoder/LICENSE.txt"}],"src_url":"/static/jssources/html-encoder-decoder/lib/index.js"},{"id":"iterate-object/lib/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/iterate-object/LICENSE.txt"}],"src_url":"/static/jssources/iterate-object/lib/index.js"},{"id":"js-cookie/dist/js.cookie.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/js-cookie/LICENSE.txt"}],"src_url":"/static/jssources/js-cookie/dist/js.cookie.mjs"},{"id":"notebookjs/notebook.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/notebookjs/LICENSE.txt"}],"src_url":"/static/jssources/notebookjs/notebook.js"},{"id":"object-fit-images/dist/ofi.common-js.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/object-fit-images/license.txt"}],"src_url":"/static/jssources/object-fit-images/dist/ofi.common-js.js"},{"id":"regenerator-runtime/runtime.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regenerator-runtime/LICENSE.txt"}],"src_url":"/static/jssources/regenerator-runtime/runtime.js"},{"id":"regex-escape/lib/index.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/regex-escape/LICENSE.txt"}],"src_url":"/static/jssources/regex-escape/lib/index.js"},{"id":"script-loader/addScript.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/script-loader/LICENSE.txt"}],"src_url":"/static/jssources/script-loader/addScript.js"},{"id":"tslib/tslib.es6.js","licenses":[{"name":"0BSD","url":"","copy_url":"/static/jssources/tslib/LICENSE.txt"}],"src_url":"/static/jssources/tslib/tslib.es6.js"}],"/static/js/d3.f989183a810fb9dbb086.js":[{"id":"assets/src/utils/d3.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/d3.js"},{"id":"d3-array/src/array.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/array.js"},{"id":"d3-array/src/ascending.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/ascending.js"},{"id":"d3-array/src/bin.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/bin.js"},{"id":"d3-array/src/bisect.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/bisect.js"},{"id":"d3-array/src/bisector.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/bisector.js"},{"id":"d3-array/src/constant.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/constant.js"},{"id":"d3-array/src/count.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/count.js"},{"id":"d3-array/src/cross.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/cross.js"},{"id":"d3-array/src/cumsum.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/cumsum.js"},{"id":"d3-array/src/descending.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/descending.js"},{"id":"d3-array/src/deviation.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/deviation.js"},{"id":"d3-array/src/difference.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/difference.js"},{"id":"d3-array/src/disjoint.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/disjoint.js"},{"id":"d3-array/src/every.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/every.js"},{"id":"d3-array/src/extent.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/extent.js"},{"id":"d3-array/src/filter.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/filter.js"},{"id":"d3-array/src/fsum.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/fsum.js"},{"id":"d3-array/src/greatest.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/greatest.js"},{"id":"d3-array/src/greatestIndex.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/greatestIndex.js"},{"id":"d3-array/src/group.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/group.js"},{"id":"d3-array/src/groupSort.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/groupSort.js"},{"id":"d3-array/src/identity.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/identity.js"},{"id":"d3-array/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/index.js"},{"id":"d3-array/src/intersection.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/intersection.js"},{"id":"d3-array/src/least.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/least.js"},{"id":"d3-array/src/leastIndex.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/leastIndex.js"},{"id":"d3-array/src/map.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/map.js"},{"id":"d3-array/src/max.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/max.js"},{"id":"d3-array/src/maxIndex.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/maxIndex.js"},{"id":"d3-array/src/mean.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/mean.js"},{"id":"d3-array/src/median.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/median.js"},{"id":"d3-array/src/merge.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/merge.js"},{"id":"d3-array/src/min.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/min.js"},{"id":"d3-array/src/minIndex.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/minIndex.js"},{"id":"d3-array/src/mode.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/mode.js"},{"id":"d3-array/src/nice.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/nice.js"},{"id":"d3-array/src/number.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/number.js"},{"id":"d3-array/src/pairs.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/pairs.js"},{"id":"d3-array/src/permute.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/permute.js"},{"id":"d3-array/src/quantile.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/quantile.js"},{"id":"d3-array/src/quickselect.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/quickselect.js"},{"id":"d3-array/src/range.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/range.js"},{"id":"d3-array/src/reduce.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/reduce.js"},{"id":"d3-array/src/reverse.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/reverse.js"},{"id":"d3-array/src/scan.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/scan.js"},{"id":"d3-array/src/set.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/set.js"},{"id":"d3-array/src/shuffle.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/shuffle.js"},{"id":"d3-array/src/some.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/some.js"},{"id":"d3-array/src/sort.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/sort.js"},{"id":"d3-array/src/subset.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/subset.js"},{"id":"d3-array/src/sum.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/sum.js"},{"id":"d3-array/src/superset.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/superset.js"},{"id":"d3-array/src/threshold/freedmanDiaconis.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/threshold/freedmanDiaconis.js"},{"id":"d3-array/src/threshold/scott.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/threshold/scott.js"},{"id":"d3-array/src/threshold/sturges.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/threshold/sturges.js"},{"id":"d3-array/src/ticks.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/ticks.js"},{"id":"d3-array/src/transpose.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/transpose.js"},{"id":"d3-array/src/union.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/union.js"},{"id":"d3-array/src/variance.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/variance.js"},{"id":"d3-array/src/zip.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-array/LICENSE.txt"}],"src_url":"/static/jssources/d3-array/src/zip.js"},{"id":"d3-axis/src/axis.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-axis/LICENSE.txt"}],"src_url":"/static/jssources/d3-axis/src/axis.js"},{"id":"d3-axis/src/identity.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-axis/LICENSE.txt"}],"src_url":"/static/jssources/d3-axis/src/identity.js"},{"id":"d3-axis/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-axis/LICENSE.txt"}],"src_url":"/static/jssources/d3-axis/src/index.js"},{"id":"d3-color/src/color.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-color/LICENSE.txt"}],"src_url":"/static/jssources/d3-color/src/color.js"},{"id":"d3-color/src/define.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-color/LICENSE.txt"}],"src_url":"/static/jssources/d3-color/src/define.js"},{"id":"d3-dispatch/src/dispatch.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-dispatch/LICENSE.txt"}],"src_url":"/static/jssources/d3-dispatch/src/dispatch.js"},{"id":"d3-ease/src/cubic.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/d3-ease/LICENSE.txt"}],"src_url":"/static/jssources/d3-ease/src/cubic.js"},{"id":"d3-format/src/defaultLocale.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/defaultLocale.js"},{"id":"d3-format/src/exponent.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/exponent.js"},{"id":"d3-format/src/formatDecimal.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatDecimal.js"},{"id":"d3-format/src/formatGroup.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatGroup.js"},{"id":"d3-format/src/formatNumerals.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatNumerals.js"},{"id":"d3-format/src/formatPrefixAuto.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatPrefixAuto.js"},{"id":"d3-format/src/formatRounded.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatRounded.js"},{"id":"d3-format/src/formatSpecifier.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatSpecifier.js"},{"id":"d3-format/src/formatTrim.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatTrim.js"},{"id":"d3-format/src/formatTypes.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/formatTypes.js"},{"id":"d3-format/src/identity.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/identity.js"},{"id":"d3-format/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/index.js"},{"id":"d3-format/src/locale.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/locale.js"},{"id":"d3-format/src/precisionFixed.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/precisionFixed.js"},{"id":"d3-format/src/precisionPrefix.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/precisionPrefix.js"},{"id":"d3-format/src/precisionRound.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-format/src/precisionRound.js"},{"id":"d3-interpolate/src/array.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/array.js"},{"id":"d3-interpolate/src/basis.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/basis.js"},{"id":"d3-interpolate/src/basisClosed.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/basisClosed.js"},{"id":"d3-interpolate/src/color.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/color.js"},{"id":"d3-interpolate/src/constant.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/constant.js"},{"id":"d3-interpolate/src/date.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/date.js"},{"id":"d3-interpolate/src/number.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/number.js"},{"id":"d3-interpolate/src/numberArray.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/numberArray.js"},{"id":"d3-interpolate/src/object.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/object.js"},{"id":"d3-interpolate/src/piecewise.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/piecewise.js"},{"id":"d3-interpolate/src/rgb.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/rgb.js"},{"id":"d3-interpolate/src/round.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/round.js"},{"id":"d3-interpolate/src/string.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/string.js"},{"id":"d3-interpolate/src/transform/decompose.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/transform/decompose.js"},{"id":"d3-interpolate/src/transform/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/transform/index.js"},{"id":"d3-interpolate/src/transform/parse.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/transform/parse.js"},{"id":"d3-interpolate/src/value.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-interpolate/LICENSE.txt"}],"src_url":"/static/jssources/d3-interpolate/src/value.js"},{"id":"d3-path/src/path.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-path/LICENSE.txt"}],"src_url":"/static/jssources/d3-path/src/path.js"},{"id":"d3-scale/src/band.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/band.js"},{"id":"d3-scale/src/constant.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/constant.js"},{"id":"d3-scale/src/continuous.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/continuous.js"},{"id":"d3-scale/src/diverging.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/diverging.js"},{"id":"d3-scale/src/identity.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/identity.js"},{"id":"d3-scale/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/index.js"},{"id":"d3-scale/src/init.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/init.js"},{"id":"d3-scale/src/linear.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/linear.js"},{"id":"d3-scale/src/log.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/log.js"},{"id":"d3-scale/src/nice.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/nice.js"},{"id":"d3-scale/src/number.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/number.js"},{"id":"d3-scale/src/ordinal.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/ordinal.js"},{"id":"d3-scale/src/pow.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/pow.js"},{"id":"d3-scale/src/quantile.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/quantile.js"},{"id":"d3-scale/src/quantize.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/quantize.js"},{"id":"d3-scale/src/radial.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/radial.js"},{"id":"d3-scale/src/sequential.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/sequential.js"},{"id":"d3-scale/src/sequentialQuantile.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/sequentialQuantile.js"},{"id":"d3-scale/src/symlog.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/symlog.js"},{"id":"d3-scale/src/threshold.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/threshold.js"},{"id":"d3-scale/src/tickFormat.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/tickFormat.js"},{"id":"d3-scale/src/time.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/time.js"},{"id":"d3-scale/src/utcTime.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-scale/LICENSE.txt"}],"src_url":"/static/jssources/d3-scale/src/utcTime.js"},{"id":"d3-selection/src/array.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/array.js"},{"id":"d3-selection/src/constant.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/constant.js"},{"id":"d3-selection/src/create.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/create.js"},{"id":"d3-selection/src/creator.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/creator.js"},{"id":"d3-selection/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/index.js"},{"id":"d3-selection/src/local.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/local.js"},{"id":"d3-selection/src/matcher.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/matcher.js"},{"id":"d3-selection/src/namespace.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/namespace.js"},{"id":"d3-selection/src/namespaces.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/namespaces.js"},{"id":"d3-selection/src/pointer.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/pointer.js"},{"id":"d3-selection/src/pointers.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/pointers.js"},{"id":"d3-selection/src/select.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/select.js"},{"id":"d3-selection/src/selectAll.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selectAll.js"},{"id":"d3-selection/src/selection/append.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/append.js"},{"id":"d3-selection/src/selection/attr.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/attr.js"},{"id":"d3-selection/src/selection/call.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/call.js"},{"id":"d3-selection/src/selection/classed.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/classed.js"},{"id":"d3-selection/src/selection/clone.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/clone.js"},{"id":"d3-selection/src/selection/data.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/data.js"},{"id":"d3-selection/src/selection/datum.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/datum.js"},{"id":"d3-selection/src/selection/dispatch.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/dispatch.js"},{"id":"d3-selection/src/selection/each.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/each.js"},{"id":"d3-selection/src/selection/empty.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/empty.js"},{"id":"d3-selection/src/selection/enter.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/enter.js"},{"id":"d3-selection/src/selection/exit.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/exit.js"},{"id":"d3-selection/src/selection/filter.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/filter.js"},{"id":"d3-selection/src/selection/html.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/html.js"},{"id":"d3-selection/src/selection/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/index.js"},{"id":"d3-selection/src/selection/insert.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/insert.js"},{"id":"d3-selection/src/selection/iterator.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/iterator.js"},{"id":"d3-selection/src/selection/join.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/join.js"},{"id":"d3-selection/src/selection/lower.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/lower.js"},{"id":"d3-selection/src/selection/merge.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/merge.js"},{"id":"d3-selection/src/selection/node.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/node.js"},{"id":"d3-selection/src/selection/nodes.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/nodes.js"},{"id":"d3-selection/src/selection/on.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/on.js"},{"id":"d3-selection/src/selection/order.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/order.js"},{"id":"d3-selection/src/selection/property.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/property.js"},{"id":"d3-selection/src/selection/raise.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/raise.js"},{"id":"d3-selection/src/selection/remove.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/remove.js"},{"id":"d3-selection/src/selection/select.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/select.js"},{"id":"d3-selection/src/selection/selectAll.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/selectAll.js"},{"id":"d3-selection/src/selection/selectChild.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/selectChild.js"},{"id":"d3-selection/src/selection/selectChildren.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/selectChildren.js"},{"id":"d3-selection/src/selection/size.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/size.js"},{"id":"d3-selection/src/selection/sort.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/sort.js"},{"id":"d3-selection/src/selection/sparse.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/sparse.js"},{"id":"d3-selection/src/selection/style.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/style.js"},{"id":"d3-selection/src/selection/text.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selection/text.js"},{"id":"d3-selection/src/selector.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selector.js"},{"id":"d3-selection/src/selectorAll.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/selectorAll.js"},{"id":"d3-selection/src/sourceEvent.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/sourceEvent.js"},{"id":"d3-selection/src/window.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-selection/LICENSE.txt"}],"src_url":"/static/jssources/d3-selection/src/window.js"},{"id":"d3-shape/src/arc.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/arc.js"},{"id":"d3-shape/src/area.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/area.js"},{"id":"d3-shape/src/areaRadial.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/areaRadial.js"},{"id":"d3-shape/src/array.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/array.js"},{"id":"d3-shape/src/constant.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/constant.js"},{"id":"d3-shape/src/curve/basis.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/basis.js"},{"id":"d3-shape/src/curve/basisClosed.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/basisClosed.js"},{"id":"d3-shape/src/curve/basisOpen.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/basisOpen.js"},{"id":"d3-shape/src/curve/bump.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/bump.js"},{"id":"d3-shape/src/curve/bundle.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/bundle.js"},{"id":"d3-shape/src/curve/cardinal.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/cardinal.js"},{"id":"d3-shape/src/curve/cardinalClosed.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/cardinalClosed.js"},{"id":"d3-shape/src/curve/cardinalOpen.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/cardinalOpen.js"},{"id":"d3-shape/src/curve/catmullRom.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/catmullRom.js"},{"id":"d3-shape/src/curve/catmullRomClosed.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/catmullRomClosed.js"},{"id":"d3-shape/src/curve/catmullRomOpen.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/catmullRomOpen.js"},{"id":"d3-shape/src/curve/linear.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/linear.js"},{"id":"d3-shape/src/curve/linearClosed.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/linearClosed.js"},{"id":"d3-shape/src/curve/monotone.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/monotone.js"},{"id":"d3-shape/src/curve/natural.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/natural.js"},{"id":"d3-shape/src/curve/radial.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/radial.js"},{"id":"d3-shape/src/curve/step.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/curve/step.js"},{"id":"d3-shape/src/descending.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/descending.js"},{"id":"d3-shape/src/identity.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/identity.js"},{"id":"d3-shape/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/index.js"},{"id":"d3-shape/src/line.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/line.js"},{"id":"d3-shape/src/lineRadial.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/lineRadial.js"},{"id":"d3-shape/src/link/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/link/index.js"},{"id":"d3-shape/src/math.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/math.js"},{"id":"d3-shape/src/noop.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/noop.js"},{"id":"d3-shape/src/offset/diverging.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/diverging.js"},{"id":"d3-shape/src/offset/expand.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/expand.js"},{"id":"d3-shape/src/offset/none.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/none.js"},{"id":"d3-shape/src/offset/silhouette.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/silhouette.js"},{"id":"d3-shape/src/offset/wiggle.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/offset/wiggle.js"},{"id":"d3-shape/src/order/appearance.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/appearance.js"},{"id":"d3-shape/src/order/ascending.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/ascending.js"},{"id":"d3-shape/src/order/descending.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/descending.js"},{"id":"d3-shape/src/order/insideOut.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/insideOut.js"},{"id":"d3-shape/src/order/none.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/none.js"},{"id":"d3-shape/src/order/reverse.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/order/reverse.js"},{"id":"d3-shape/src/pie.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/pie.js"},{"id":"d3-shape/src/point.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/point.js"},{"id":"d3-shape/src/pointRadial.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/pointRadial.js"},{"id":"d3-shape/src/stack.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/stack.js"},{"id":"d3-shape/src/symbol.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol.js"},{"id":"d3-shape/src/symbol/circle.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/circle.js"},{"id":"d3-shape/src/symbol/cross.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/cross.js"},{"id":"d3-shape/src/symbol/diamond.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/diamond.js"},{"id":"d3-shape/src/symbol/square.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/square.js"},{"id":"d3-shape/src/symbol/star.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/star.js"},{"id":"d3-shape/src/symbol/triangle.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/triangle.js"},{"id":"d3-shape/src/symbol/wye.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-shape/LICENSE.txt"}],"src_url":"/static/jssources/d3-shape/src/symbol/wye.js"},{"id":"d3-time-format/src/defaultLocale.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/defaultLocale.js"},{"id":"d3-time-format/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/index.js"},{"id":"d3-time-format/src/isoFormat.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/isoFormat.js"},{"id":"d3-time-format/src/isoParse.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/isoParse.js"},{"id":"d3-time-format/src/locale.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time-format/LICENSE.txt"}],"src_url":"/static/jssources/d3-time-format/src/locale.js"},{"id":"d3-time/src/day.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/day.js"},{"id":"d3-time/src/duration.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/duration.js"},{"id":"d3-time/src/hour.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/hour.js"},{"id":"d3-time/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/index.js"},{"id":"d3-time/src/interval.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/interval.js"},{"id":"d3-time/src/millisecond.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/millisecond.js"},{"id":"d3-time/src/minute.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/minute.js"},{"id":"d3-time/src/month.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/month.js"},{"id":"d3-time/src/second.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/second.js"},{"id":"d3-time/src/ticks.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/ticks.js"},{"id":"d3-time/src/utcDay.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcDay.js"},{"id":"d3-time/src/utcHour.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcHour.js"},{"id":"d3-time/src/utcMinute.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcMinute.js"},{"id":"d3-time/src/utcMonth.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcMonth.js"},{"id":"d3-time/src/utcWeek.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcWeek.js"},{"id":"d3-time/src/utcYear.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/utcYear.js"},{"id":"d3-time/src/week.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/week.js"},{"id":"d3-time/src/year.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-time/LICENSE.txt"}],"src_url":"/static/jssources/d3-time/src/year.js"},{"id":"d3-timer/src/timeout.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-timer/LICENSE.txt"}],"src_url":"/static/jssources/d3-timer/src/timeout.js"},{"id":"d3-timer/src/timer.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-timer/LICENSE.txt"}],"src_url":"/static/jssources/d3-timer/src/timer.js"},{"id":"d3-transition/src/active.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/active.js"},{"id":"d3-transition/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/index.js"},{"id":"d3-transition/src/interrupt.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/interrupt.js"},{"id":"d3-transition/src/selection/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/selection/index.js"},{"id":"d3-transition/src/selection/interrupt.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/selection/interrupt.js"},{"id":"d3-transition/src/selection/transition.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/selection/transition.js"},{"id":"d3-transition/src/transition/attr.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/attr.js"},{"id":"d3-transition/src/transition/attrTween.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/attrTween.js"},{"id":"d3-transition/src/transition/delay.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/delay.js"},{"id":"d3-transition/src/transition/duration.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/duration.js"},{"id":"d3-transition/src/transition/ease.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/ease.js"},{"id":"d3-transition/src/transition/easeVarying.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/easeVarying.js"},{"id":"d3-transition/src/transition/end.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/end.js"},{"id":"d3-transition/src/transition/filter.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/filter.js"},{"id":"d3-transition/src/transition/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/index.js"},{"id":"d3-transition/src/transition/interpolate.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/interpolate.js"},{"id":"d3-transition/src/transition/merge.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/merge.js"},{"id":"d3-transition/src/transition/on.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/on.js"},{"id":"d3-transition/src/transition/remove.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/remove.js"},{"id":"d3-transition/src/transition/schedule.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/schedule.js"},{"id":"d3-transition/src/transition/select.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/select.js"},{"id":"d3-transition/src/transition/selectAll.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/selectAll.js"},{"id":"d3-transition/src/transition/selection.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/selection.js"},{"id":"d3-transition/src/transition/style.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/style.js"},{"id":"d3-transition/src/transition/styleTween.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/styleTween.js"},{"id":"d3-transition/src/transition/text.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/text.js"},{"id":"d3-transition/src/transition/textTween.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/textTween.js"},{"id":"d3-transition/src/transition/transition.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/transition.js"},{"id":"d3-transition/src/transition/tween.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/d3-transition/LICENSE.txt"}],"src_url":"/static/jssources/d3-transition/src/transition/tween.js"},{"id":"internmap/src/index.js","licenses":[{"name":"The ISC License","url":"https://www.isc.org/downloads/software-support-policy/isc-license/","copy_url":"/static/jssources/internmap/LICENSE.txt"}],"src_url":"/static/jssources/internmap/src/index.js"}],"/static/js/highlightjs.5fd270288fca1f2de6c3.js":[{"id":"assets/src/utils/highlightjs.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/highlightjs.js"},{"id":"expose-loader/dist/runtime/getGlobalThis.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/expose-loader/LICENSE.txt"}],"src_url":"/static/jssources/expose-loader/dist/runtime/getGlobalThis.js"},{"id":"highlight.js/es/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/es/index.js"},{"id":"highlight.js/lib/core.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/core.js"},{"id":"highlight.js/lib/index-exposed.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/index-exposed.js"},{"id":"highlight.js/lib/index.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/index.js"},{"id":"highlight.js/lib/languages/1c.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/1c.js"},{"id":"highlight.js/lib/languages/abnf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/abnf.js"},{"id":"highlight.js/lib/languages/accesslog.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/accesslog.js"},{"id":"highlight.js/lib/languages/actionscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/actionscript.js"},{"id":"highlight.js/lib/languages/ada.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ada.js"},{"id":"highlight.js/lib/languages/angelscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/angelscript.js"},{"id":"highlight.js/lib/languages/apache.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/apache.js"},{"id":"highlight.js/lib/languages/applescript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/applescript.js"},{"id":"highlight.js/lib/languages/arcade.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/arcade.js"},{"id":"highlight.js/lib/languages/arduino.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/arduino.js"},{"id":"highlight.js/lib/languages/armasm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/armasm.js"},{"id":"highlight.js/lib/languages/asciidoc.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/asciidoc.js"},{"id":"highlight.js/lib/languages/aspectj.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/aspectj.js"},{"id":"highlight.js/lib/languages/autohotkey.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/autohotkey.js"},{"id":"highlight.js/lib/languages/autoit.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/autoit.js"},{"id":"highlight.js/lib/languages/avrasm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/avrasm.js"},{"id":"highlight.js/lib/languages/awk.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/awk.js"},{"id":"highlight.js/lib/languages/axapta.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/axapta.js"},{"id":"highlight.js/lib/languages/bash.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/bash.js"},{"id":"highlight.js/lib/languages/basic.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/basic.js"},{"id":"highlight.js/lib/languages/bnf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/bnf.js"},{"id":"highlight.js/lib/languages/brainfuck.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/brainfuck.js"},{"id":"highlight.js/lib/languages/c.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/c.js"},{"id":"highlight.js/lib/languages/cal.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/cal.js"},{"id":"highlight.js/lib/languages/capnproto.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/capnproto.js"},{"id":"highlight.js/lib/languages/ceylon.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ceylon.js"},{"id":"highlight.js/lib/languages/clean.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/clean.js"},{"id":"highlight.js/lib/languages/clojure-repl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/clojure-repl.js"},{"id":"highlight.js/lib/languages/clojure.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/clojure.js"},{"id":"highlight.js/lib/languages/cmake.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/cmake.js"},{"id":"highlight.js/lib/languages/coffeescript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/coffeescript.js"},{"id":"highlight.js/lib/languages/coq.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/coq.js"},{"id":"highlight.js/lib/languages/cos.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/cos.js"},{"id":"highlight.js/lib/languages/cpp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/cpp.js"},{"id":"highlight.js/lib/languages/crmsh.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/crmsh.js"},{"id":"highlight.js/lib/languages/crystal.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/crystal.js"},{"id":"highlight.js/lib/languages/csharp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/csharp.js"},{"id":"highlight.js/lib/languages/csp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/csp.js"},{"id":"highlight.js/lib/languages/css.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/css.js"},{"id":"highlight.js/lib/languages/d.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/d.js"},{"id":"highlight.js/lib/languages/dart.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dart.js"},{"id":"highlight.js/lib/languages/delphi.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/delphi.js"},{"id":"highlight.js/lib/languages/diff.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/diff.js"},{"id":"highlight.js/lib/languages/django.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/django.js"},{"id":"highlight.js/lib/languages/dns.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dns.js"},{"id":"highlight.js/lib/languages/dockerfile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dockerfile.js"},{"id":"highlight.js/lib/languages/dos.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dos.js"},{"id":"highlight.js/lib/languages/dsconfig.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dsconfig.js"},{"id":"highlight.js/lib/languages/dts.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dts.js"},{"id":"highlight.js/lib/languages/dust.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/dust.js"},{"id":"highlight.js/lib/languages/ebnf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ebnf.js"},{"id":"highlight.js/lib/languages/elixir.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/elixir.js"},{"id":"highlight.js/lib/languages/elm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/elm.js"},{"id":"highlight.js/lib/languages/erb.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/erb.js"},{"id":"highlight.js/lib/languages/erlang-repl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/erlang-repl.js"},{"id":"highlight.js/lib/languages/erlang.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/erlang.js"},{"id":"highlight.js/lib/languages/excel.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/excel.js"},{"id":"highlight.js/lib/languages/fix.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/fix.js"},{"id":"highlight.js/lib/languages/flix.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/flix.js"},{"id":"highlight.js/lib/languages/fortran.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/fortran.js"},{"id":"highlight.js/lib/languages/fsharp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/fsharp.js"},{"id":"highlight.js/lib/languages/gams.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gams.js"},{"id":"highlight.js/lib/languages/gauss.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gauss.js"},{"id":"highlight.js/lib/languages/gcode.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gcode.js"},{"id":"highlight.js/lib/languages/gherkin.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gherkin.js"},{"id":"highlight.js/lib/languages/glsl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/glsl.js"},{"id":"highlight.js/lib/languages/gml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gml.js"},{"id":"highlight.js/lib/languages/go.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/go.js"},{"id":"highlight.js/lib/languages/golo.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/golo.js"},{"id":"highlight.js/lib/languages/gradle.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/gradle.js"},{"id":"highlight.js/lib/languages/graphql.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/graphql.js"},{"id":"highlight.js/lib/languages/groovy.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/groovy.js"},{"id":"highlight.js/lib/languages/haml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/haml.js"},{"id":"highlight.js/lib/languages/handlebars.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/handlebars.js"},{"id":"highlight.js/lib/languages/haskell.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/haskell.js"},{"id":"highlight.js/lib/languages/haxe.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/haxe.js"},{"id":"highlight.js/lib/languages/hsp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/hsp.js"},{"id":"highlight.js/lib/languages/http.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/http.js"},{"id":"highlight.js/lib/languages/hy.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/hy.js"},{"id":"highlight.js/lib/languages/inform7.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/inform7.js"},{"id":"highlight.js/lib/languages/ini.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ini.js"},{"id":"highlight.js/lib/languages/irpf90.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/irpf90.js"},{"id":"highlight.js/lib/languages/isbl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/isbl.js"},{"id":"highlight.js/lib/languages/java.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/java.js"},{"id":"highlight.js/lib/languages/javascript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/javascript.js"},{"id":"highlight.js/lib/languages/jboss-cli.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/jboss-cli.js"},{"id":"highlight.js/lib/languages/json.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/json.js"},{"id":"highlight.js/lib/languages/julia-repl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/julia-repl.js"},{"id":"highlight.js/lib/languages/julia.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/julia.js"},{"id":"highlight.js/lib/languages/kotlin.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/kotlin.js"},{"id":"highlight.js/lib/languages/lasso.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/lasso.js"},{"id":"highlight.js/lib/languages/latex.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/latex.js"},{"id":"highlight.js/lib/languages/ldif.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ldif.js"},{"id":"highlight.js/lib/languages/leaf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/leaf.js"},{"id":"highlight.js/lib/languages/less.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/less.js"},{"id":"highlight.js/lib/languages/lisp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/lisp.js"},{"id":"highlight.js/lib/languages/livecodeserver.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/livecodeserver.js"},{"id":"highlight.js/lib/languages/livescript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/livescript.js"},{"id":"highlight.js/lib/languages/llvm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/llvm.js"},{"id":"highlight.js/lib/languages/lsl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/lsl.js"},{"id":"highlight.js/lib/languages/lua.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/lua.js"},{"id":"highlight.js/lib/languages/makefile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/makefile.js"},{"id":"highlight.js/lib/languages/markdown.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/markdown.js"},{"id":"highlight.js/lib/languages/mathematica.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mathematica.js"},{"id":"highlight.js/lib/languages/matlab.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/matlab.js"},{"id":"highlight.js/lib/languages/maxima.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/maxima.js"},{"id":"highlight.js/lib/languages/mel.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mel.js"},{"id":"highlight.js/lib/languages/mercury.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mercury.js"},{"id":"highlight.js/lib/languages/mipsasm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mipsasm.js"},{"id":"highlight.js/lib/languages/mizar.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mizar.js"},{"id":"highlight.js/lib/languages/mojolicious.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/mojolicious.js"},{"id":"highlight.js/lib/languages/monkey.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/monkey.js"},{"id":"highlight.js/lib/languages/moonscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/moonscript.js"},{"id":"highlight.js/lib/languages/n1ql.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/n1ql.js"},{"id":"highlight.js/lib/languages/nestedtext.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/nestedtext.js"},{"id":"highlight.js/lib/languages/nginx.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/nginx.js"},{"id":"highlight.js/lib/languages/nim.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/nim.js"},{"id":"highlight.js/lib/languages/nix.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/nix.js"},{"id":"highlight.js/lib/languages/node-repl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/node-repl.js"},{"id":"highlight.js/lib/languages/nsis.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/nsis.js"},{"id":"highlight.js/lib/languages/objectivec.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/objectivec.js"},{"id":"highlight.js/lib/languages/ocaml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ocaml.js"},{"id":"highlight.js/lib/languages/openscad.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/openscad.js"},{"id":"highlight.js/lib/languages/oxygene.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/oxygene.js"},{"id":"highlight.js/lib/languages/parser3.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/parser3.js"},{"id":"highlight.js/lib/languages/perl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/perl.js"},{"id":"highlight.js/lib/languages/pf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/pf.js"},{"id":"highlight.js/lib/languages/pgsql.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/pgsql.js"},{"id":"highlight.js/lib/languages/php-template.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/php-template.js"},{"id":"highlight.js/lib/languages/php.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/php.js"},{"id":"highlight.js/lib/languages/plaintext.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/plaintext.js"},{"id":"highlight.js/lib/languages/pony.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/pony.js"},{"id":"highlight.js/lib/languages/powershell.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/powershell.js"},{"id":"highlight.js/lib/languages/processing.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/processing.js"},{"id":"highlight.js/lib/languages/profile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/profile.js"},{"id":"highlight.js/lib/languages/prolog.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/prolog.js"},{"id":"highlight.js/lib/languages/properties.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/properties.js"},{"id":"highlight.js/lib/languages/protobuf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/protobuf.js"},{"id":"highlight.js/lib/languages/puppet.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/puppet.js"},{"id":"highlight.js/lib/languages/purebasic.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/purebasic.js"},{"id":"highlight.js/lib/languages/python-repl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/python-repl.js"},{"id":"highlight.js/lib/languages/python.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/python.js"},{"id":"highlight.js/lib/languages/q.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/q.js"},{"id":"highlight.js/lib/languages/qml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/qml.js"},{"id":"highlight.js/lib/languages/r.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/r.js"},{"id":"highlight.js/lib/languages/reasonml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/reasonml.js"},{"id":"highlight.js/lib/languages/rib.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/rib.js"},{"id":"highlight.js/lib/languages/roboconf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/roboconf.js"},{"id":"highlight.js/lib/languages/routeros.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/routeros.js"},{"id":"highlight.js/lib/languages/rsl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/rsl.js"},{"id":"highlight.js/lib/languages/ruby.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ruby.js"},{"id":"highlight.js/lib/languages/ruleslanguage.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/ruleslanguage.js"},{"id":"highlight.js/lib/languages/rust.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/rust.js"},{"id":"highlight.js/lib/languages/sas.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/sas.js"},{"id":"highlight.js/lib/languages/scala.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/scala.js"},{"id":"highlight.js/lib/languages/scheme.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/scheme.js"},{"id":"highlight.js/lib/languages/scilab.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/scilab.js"},{"id":"highlight.js/lib/languages/scss.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/scss.js"},{"id":"highlight.js/lib/languages/shell.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/shell.js"},{"id":"highlight.js/lib/languages/smali.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/smali.js"},{"id":"highlight.js/lib/languages/smalltalk.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/smalltalk.js"},{"id":"highlight.js/lib/languages/sml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/sml.js"},{"id":"highlight.js/lib/languages/sqf.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/sqf.js"},{"id":"highlight.js/lib/languages/sql.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/sql.js"},{"id":"highlight.js/lib/languages/stan.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/stan.js"},{"id":"highlight.js/lib/languages/stata.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/stata.js"},{"id":"highlight.js/lib/languages/step21.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/step21.js"},{"id":"highlight.js/lib/languages/stylus.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/stylus.js"},{"id":"highlight.js/lib/languages/subunit.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/subunit.js"},{"id":"highlight.js/lib/languages/swift.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/swift.js"},{"id":"highlight.js/lib/languages/taggerscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/taggerscript.js"},{"id":"highlight.js/lib/languages/tap.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/tap.js"},{"id":"highlight.js/lib/languages/tcl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/tcl.js"},{"id":"highlight.js/lib/languages/thrift.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/thrift.js"},{"id":"highlight.js/lib/languages/tp.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/tp.js"},{"id":"highlight.js/lib/languages/twig.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/twig.js"},{"id":"highlight.js/lib/languages/typescript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/typescript.js"},{"id":"highlight.js/lib/languages/vala.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vala.js"},{"id":"highlight.js/lib/languages/vbnet.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vbnet.js"},{"id":"highlight.js/lib/languages/vbscript-html.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vbscript-html.js"},{"id":"highlight.js/lib/languages/vbscript.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vbscript.js"},{"id":"highlight.js/lib/languages/verilog.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/verilog.js"},{"id":"highlight.js/lib/languages/vhdl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vhdl.js"},{"id":"highlight.js/lib/languages/vim.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/vim.js"},{"id":"highlight.js/lib/languages/wasm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/wasm.js"},{"id":"highlight.js/lib/languages/wren.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/wren.js"},{"id":"highlight.js/lib/languages/x86asm.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/x86asm.js"},{"id":"highlight.js/lib/languages/xl.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/xl.js"},{"id":"highlight.js/lib/languages/xml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/xml.js"},{"id":"highlight.js/lib/languages/xquery.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/xquery.js"},{"id":"highlight.js/lib/languages/yaml.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/yaml.js"},{"id":"highlight.js/lib/languages/zephir.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlight.js/LICENSE.txt"}],"src_url":"/static/jssources/highlight.js/lib/languages/zephir.js"},{"id":"highlightjs-4d/dist/4d.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-4d/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-4d/dist/4d.min.js"},{"id":"highlightjs-alan/dist/alan.min.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/highlightjs-alan/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-alan/dist/alan.min.js"},{"id":"highlightjs-blade/dist/blade.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-blade/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-blade/dist/blade.min.js"},{"id":"highlightjs-chaos/dist/chaos.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-chaos/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-chaos/dist/chaos.min.js"},{"id":"highlightjs-chapel/dist/chapel.min.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlightjs-chapel/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-chapel/dist/chapel.min.js"},{"id":"highlightjs-cpcdos/dist/cpc-highlight.min.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlightjs-cpcdos/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-cpcdos/dist/cpc-highlight.min.js"},{"id":"highlightjs-cshtml-razor/dist/cshtml-razor.min.js","licenses":[{"name":"Creative Commons CC0 1.0 Universal","url":"http://creativecommons.org/publicdomain/zero/1.0/legalcode","copy_url":"/static/jssources/highlightjs-cshtml-razor/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-cshtml-razor/dist/cshtml-razor.min.js"},{"id":"highlightjs-cypher/dist/cypher.min.js","licenses":[{"name":"Creative Commons CC0 1.0 Universal","url":"http://creativecommons.org/publicdomain/zero/1.0/legalcode","copy_url":"/static/jssources/highlightjs-cypher/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-cypher/dist/cypher.min.js"},{"id":"highlightjs-dafny/dist/dafny.min.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/highlightjs-dafny/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-dafny/dist/dafny.min.js"},{"id":"highlightjs-dylan/dist/dylan.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-dylan/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-dylan/dist/dylan.min.js"},{"id":"highlightjs-eta/dist/eta.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":""}],"src_url":"/static/jssources/highlightjs-eta/dist/eta.min.js"},{"id":"highlightjs-extempore/dist/extempore.min.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlightjs-extempore/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-extempore/dist/extempore.min.js"},{"id":"highlightjs-gdscript/dist/gdscript.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-gdscript/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-gdscript/dist/gdscript.min.js"},{"id":"highlightjs-gf/dist/gf.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-gf/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-gf/dist/gf.min.js"},{"id":"highlightjs-gsql/dist/gsql.min.js","licenses":[{"name":"Creative Commons CC0 1.0 Universal","url":"http://creativecommons.org/publicdomain/zero/1.0/legalcode","copy_url":""}],"src_url":"/static/jssources/highlightjs-gsql/dist/gsql.min.js"},{"id":"highlightjs-hlsl/dist/hlsl.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-hlsl/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-hlsl/dist/hlsl.min.js"},{"id":"highlightjs-jolie/dist/jolie.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-jolie/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-jolie/dist/jolie.min.js"},{"id":"highlightjs-lean/src/lean.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlightjs-lean/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-lean/src/lean.js"},{"id":"highlightjs-line-numbers.js/src/highlightjs-line-numbers.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-line-numbers.js/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-line-numbers.js/src/highlightjs-line-numbers.js"},{"id":"highlightjs-lox/dist/es/lox.mjs","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-lox/LICENSE.md"}],"src_url":"/static/jssources/highlightjs-lox/dist/es/lox.mjs"},{"id":"highlightjs-mirc/mirc.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-mirc/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-mirc/mirc.js"},{"id":"highlightjs-modelica/modelica.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-modelica/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-modelica/modelica.js"},{"id":"highlightjs-never/dist/never.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-never/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-never/dist/never.min.js"},{"id":"highlightjs-octave/dist/highlightjs-octave.cjs.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlightjs-octave/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-octave/dist/highlightjs-octave.cjs.js"},{"id":"highlightjs-oz/dist/oz.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-oz/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-oz/dist/oz.min.js"},{"id":"highlightjs-qsharp/dist/qsharp.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":""}],"src_url":"/static/jssources/highlightjs-qsharp/dist/qsharp.min.js"},{"id":"highlightjs-redbol/dist/redbol.min.js","licenses":[{"name":"Creative Commons CC0 1.0 Universal","url":"http://creativecommons.org/publicdomain/zero/1.0/legalcode","copy_url":"/static/jssources/highlightjs-redbol/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-redbol/dist/redbol.min.js"},{"id":"highlightjs-robot/robot.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-robot/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-robot/robot.js"},{"id":"highlightjs-robots-txt/dist/robots-txt.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-robots-txt/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-robots-txt/dist/robots-txt.min.js"},{"id":"highlightjs-rpm-specfile/rpm-specfile.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"/static/jssources/highlightjs-rpm-specfile/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-rpm-specfile/rpm-specfile.js"},{"id":"highlightjs-sap-abap/dist/abap.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-sap-abap/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-sap-abap/dist/abap.min.js"},{"id":"highlightjs-solidity/dist/solidity.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-solidity/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-solidity/dist/solidity.min.js"},{"id":"highlightjs-svelte/dist/svelte.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-svelte/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-svelte/dist/svelte.min.js"},{"id":"highlightjs-terraform/terraform.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-terraform/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-terraform/terraform.js"},{"id":"highlightjs-xsharp/dist/xsharp.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-xsharp/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-xsharp/dist/xsharp.min.js"},{"id":"highlightjs-zenscript/dist/zenscript.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-zenscript/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-zenscript/dist/zenscript.min.js"},{"id":"highlightjs-zig/dist/zig.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/highlightjs-zig/LICENSE.txt"}],"src_url":"/static/jssources/highlightjs-zig/dist/zig.min.js"},{"id":"hightlightjs-papyrus/dist/papyrus.min.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/hightlightjs-papyrus/LICENSE.txt"}],"src_url":"/static/jssources/hightlightjs-papyrus/dist/papyrus.min.js"},{"id":"script-loader/addScript.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/script-loader/LICENSE.txt"}],"src_url":"/static/jssources/script-loader/addScript.js"}],"/static/js/showdown.b448e42a34c43d6a7de5.js":[{"id":"assets/src/utils/showdown.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/showdown.js"},{"id":"showdown/dist/showdown.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/showdown/LICENSE.txt"}],"src_url":"/static/jssources/showdown/dist/showdown.js"}],"/static/js/org.9adc9a39a210c2fb4be0.js":[{"id":"assets/src/utils/org.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/org.js"},{"id":"org/lib/org.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org.js"},{"id":"org/lib/org/converter/converter.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/converter/converter.js"},{"id":"org/lib/org/converter/html.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/converter/html.js"},{"id":"org/lib/org/lexer.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/lexer.js"},{"id":"org/lib/org/node.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/node.js"},{"id":"org/lib/org/parser.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/parser.js"},{"id":"org/lib/org/stream.js","licenses":[{"name":"Expat License","url":"http://www.jclark.com/xml/copying.txt","copy_url":"/static/jssources/org/LICENSE.txt"}],"src_url":"/static/jssources/org/lib/org/stream.js"}],"/static/js/pdfjs.7fa499e22fea56527058.js":[{"id":"pdfjs-dist/build/pdf.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/pdfjs-dist/LICENSE.txt"}],"src_url":"/static/jssources/pdfjs-dist/build/pdf.js"}],"/static/js/mathjax.a0046af7afe82fd10728.js":[{"id":"assets/src/utils/mathjax.js","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/static/jssources/assets/src/utils/mathjax.js"},{"id":"mathjax/es5/tex-mml-chtml.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/mathjax/LICENSE.txt"}],"src_url":"/static/jssources/mathjax/es5/tex-mml-chtml.js"}],"/static/js/pdf.worker.min.js":[{"id":"pdfjs-dist/build/pdf.worker.js","licenses":[{"name":"Apache License, Version 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0","copy_url":"/static/jssources/pdfjs-dist/LICENSE.txt"}],"src_url":"/static/jssources/pdfjs-dist/build/pdf.worker.js"}],"/jsreverse/":[{"id":"jsreverse","licenses":[{"name":"GNU Affero General Public License, version 3","url":"http://www.gnu.org/licenses/agpl-3.0.html","copy_url":"/static/jssources/LICENSE.txt"}],"src_url":"/jsreverse/"}],"https://piwik.inria.fr/matomo.js":[{"id":"matomo.js","licenses":[{"name":"BSD 3-Clause License","url":"http://opensource.org/licenses/BSD-3-Clause","copy_url":"https://github.com/matomo-org/matomo/blob/master/js/LICENSE.txt"}],"src_url":"https://github.com/matomo-org/matomo/blob/master/js/piwik.js"}]} \ No newline at end of file diff --git a/static/webpack-stats.json b/static/webpack-stats.json index f4622f4b..c7dc96c1 100644 --- a/static/webpack-stats.json +++ b/static/webpack-stats.json @@ -1,805 +1,805 @@ { "status": "done", "assets": { "img/thirdParty/chosen-sprite.png": { "name": "img/thirdParty/chosen-sprite.png", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/img/thirdParty/chosen-sprite.png", "publicPath": "/static/img/thirdParty/chosen-sprite.png" }, "img/thirdParty/chosen-sprite@2x.png": { "name": "img/thirdParty/chosen-sprite@2x.png", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/img/thirdParty/chosen-sprite@2x.png", "publicPath": "/static/img/thirdParty/chosen-sprite@2x.png" }, "fonts/materialdesignicons-webfont.woff2?v=6.6.96": { "name": "fonts/materialdesignicons-webfont.woff2?v=6.6.96", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/materialdesignicons-webfont.woff2", "publicPath": "/static/fonts/materialdesignicons-webfont.woff2?v=6.6.96" }, "fonts/materialdesignicons-webfont.eot?v=6.6.96": { "name": "fonts/materialdesignicons-webfont.eot?v=6.6.96", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/materialdesignicons-webfont.eot", "publicPath": "/static/fonts/materialdesignicons-webfont.eot?v=6.6.96" }, "fonts/materialdesignicons-webfont.eot": { "name": "fonts/materialdesignicons-webfont.eot", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/materialdesignicons-webfont.eot", "publicPath": "/static/fonts/materialdesignicons-webfont.eot" }, "fonts/materialdesignicons-webfont.woff?v=6.6.96": { "name": "fonts/materialdesignicons-webfont.woff?v=6.6.96", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/materialdesignicons-webfont.woff", "publicPath": "/static/fonts/materialdesignicons-webfont.woff?v=6.6.96" }, "fonts/materialdesignicons-webfont.ttf?v=6.6.96": { "name": "fonts/materialdesignicons-webfont.ttf?v=6.6.96", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/materialdesignicons-webfont.ttf", "publicPath": "/static/fonts/materialdesignicons-webfont.ttf?v=6.6.96" }, "fonts/alegreya-latin-400.woff2": { "name": "fonts/alegreya-latin-400.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-400.woff2", "publicPath": "/static/fonts/alegreya-latin-400.woff2" }, "fonts/alegreya-latin-400.woff": { "name": "fonts/alegreya-latin-400.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-400.woff", "publicPath": "/static/fonts/alegreya-latin-400.woff" }, - "fonts/alegreya-latin-400italic.woff2": { - "name": "fonts/alegreya-latin-400italic.woff2", - "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-400italic.woff2", - "publicPath": "/static/fonts/alegreya-latin-400italic.woff2" - }, "fonts/alegreya-latin-400italic.woff": { "name": "fonts/alegreya-latin-400italic.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-400italic.woff", "publicPath": "/static/fonts/alegreya-latin-400italic.woff" }, + "fonts/alegreya-latin-400italic.woff2": { + "name": "fonts/alegreya-latin-400italic.woff2", + "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-400italic.woff2", + "publicPath": "/static/fonts/alegreya-latin-400italic.woff2" + }, "fonts/alegreya-latin-500.woff2": { "name": "fonts/alegreya-latin-500.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-500.woff2", "publicPath": "/static/fonts/alegreya-latin-500.woff2" }, "fonts/alegreya-latin-500.woff": { "name": "fonts/alegreya-latin-500.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-500.woff", "publicPath": "/static/fonts/alegreya-latin-500.woff" }, - "fonts/alegreya-latin-500italic.woff2": { - "name": "fonts/alegreya-latin-500italic.woff2", - "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-500italic.woff2", - "publicPath": "/static/fonts/alegreya-latin-500italic.woff2" - }, "fonts/alegreya-latin-500italic.woff": { "name": "fonts/alegreya-latin-500italic.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-500italic.woff", "publicPath": "/static/fonts/alegreya-latin-500italic.woff" }, + "fonts/alegreya-latin-500italic.woff2": { + "name": "fonts/alegreya-latin-500italic.woff2", + "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-500italic.woff2", + "publicPath": "/static/fonts/alegreya-latin-500italic.woff2" + }, "fonts/alegreya-latin-700.woff2": { "name": "fonts/alegreya-latin-700.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-700.woff2", "publicPath": "/static/fonts/alegreya-latin-700.woff2" }, "fonts/alegreya-latin-700.woff": { "name": "fonts/alegreya-latin-700.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-700.woff", "publicPath": "/static/fonts/alegreya-latin-700.woff" }, "fonts/alegreya-latin-700italic.woff2": { "name": "fonts/alegreya-latin-700italic.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-700italic.woff2", "publicPath": "/static/fonts/alegreya-latin-700italic.woff2" }, "fonts/alegreya-latin-700italic.woff": { "name": "fonts/alegreya-latin-700italic.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-700italic.woff", "publicPath": "/static/fonts/alegreya-latin-700italic.woff" }, - "fonts/alegreya-latin-800.woff": { - "name": "fonts/alegreya-latin-800.woff", - "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-800.woff", - "publicPath": "/static/fonts/alegreya-latin-800.woff" - }, "fonts/alegreya-latin-800.woff2": { "name": "fonts/alegreya-latin-800.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-800.woff2", "publicPath": "/static/fonts/alegreya-latin-800.woff2" }, + "fonts/alegreya-latin-800.woff": { + "name": "fonts/alegreya-latin-800.woff", + "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-800.woff", + "publicPath": "/static/fonts/alegreya-latin-800.woff" + }, "fonts/alegreya-latin-800italic.woff2": { "name": "fonts/alegreya-latin-800italic.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-800italic.woff2", "publicPath": "/static/fonts/alegreya-latin-800italic.woff2" }, "fonts/alegreya-latin-800italic.woff": { "name": "fonts/alegreya-latin-800italic.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-800italic.woff", "publicPath": "/static/fonts/alegreya-latin-800italic.woff" }, - "fonts/alegreya-latin-900.woff": { - "name": "fonts/alegreya-latin-900.woff", - "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-900.woff", - "publicPath": "/static/fonts/alegreya-latin-900.woff" - }, "fonts/alegreya-latin-900.woff2": { "name": "fonts/alegreya-latin-900.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-900.woff2", "publicPath": "/static/fonts/alegreya-latin-900.woff2" }, + "fonts/alegreya-latin-900.woff": { + "name": "fonts/alegreya-latin-900.woff", + "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-900.woff", + "publicPath": "/static/fonts/alegreya-latin-900.woff" + }, "fonts/alegreya-latin-900italic.woff2": { "name": "fonts/alegreya-latin-900italic.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-900italic.woff2", "publicPath": "/static/fonts/alegreya-latin-900italic.woff2" }, "fonts/alegreya-latin-900italic.woff": { "name": "fonts/alegreya-latin-900italic.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-latin-900italic.woff", "publicPath": "/static/fonts/alegreya-latin-900italic.woff" }, "fonts/alegreya-sans-latin-100.woff2": { "name": "fonts/alegreya-sans-latin-100.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-100.woff2", "publicPath": "/static/fonts/alegreya-sans-latin-100.woff2" }, "fonts/alegreya-sans-latin-100.woff": { "name": "fonts/alegreya-sans-latin-100.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-100.woff", "publicPath": "/static/fonts/alegreya-sans-latin-100.woff" }, "fonts/alegreya-sans-latin-100italic.woff2": { "name": "fonts/alegreya-sans-latin-100italic.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-100italic.woff2", "publicPath": "/static/fonts/alegreya-sans-latin-100italic.woff2" }, "fonts/alegreya-sans-latin-100italic.woff": { "name": "fonts/alegreya-sans-latin-100italic.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-100italic.woff", "publicPath": "/static/fonts/alegreya-sans-latin-100italic.woff" }, "fonts/alegreya-sans-latin-300.woff2": { "name": "fonts/alegreya-sans-latin-300.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-300.woff2", "publicPath": "/static/fonts/alegreya-sans-latin-300.woff2" }, "fonts/alegreya-sans-latin-300.woff": { "name": "fonts/alegreya-sans-latin-300.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-300.woff", "publicPath": "/static/fonts/alegreya-sans-latin-300.woff" }, "fonts/alegreya-sans-latin-300italic.woff2": { "name": "fonts/alegreya-sans-latin-300italic.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-300italic.woff2", "publicPath": "/static/fonts/alegreya-sans-latin-300italic.woff2" }, "fonts/alegreya-sans-latin-300italic.woff": { "name": "fonts/alegreya-sans-latin-300italic.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-300italic.woff", "publicPath": "/static/fonts/alegreya-sans-latin-300italic.woff" }, "fonts/alegreya-sans-latin-400.woff2": { "name": "fonts/alegreya-sans-latin-400.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-400.woff2", "publicPath": "/static/fonts/alegreya-sans-latin-400.woff2" }, "fonts/alegreya-sans-latin-400.woff": { "name": "fonts/alegreya-sans-latin-400.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-400.woff", "publicPath": "/static/fonts/alegreya-sans-latin-400.woff" }, "fonts/alegreya-sans-latin-400italic.woff2": { "name": "fonts/alegreya-sans-latin-400italic.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-400italic.woff2", "publicPath": "/static/fonts/alegreya-sans-latin-400italic.woff2" }, "fonts/alegreya-sans-latin-400italic.woff": { "name": "fonts/alegreya-sans-latin-400italic.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-400italic.woff", "publicPath": "/static/fonts/alegreya-sans-latin-400italic.woff" }, "fonts/alegreya-sans-latin-500.woff2": { "name": "fonts/alegreya-sans-latin-500.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-500.woff2", "publicPath": "/static/fonts/alegreya-sans-latin-500.woff2" }, "fonts/alegreya-sans-latin-500.woff": { "name": "fonts/alegreya-sans-latin-500.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-500.woff", "publicPath": "/static/fonts/alegreya-sans-latin-500.woff" }, "fonts/alegreya-sans-latin-500italic.woff2": { "name": "fonts/alegreya-sans-latin-500italic.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-500italic.woff2", "publicPath": "/static/fonts/alegreya-sans-latin-500italic.woff2" }, "fonts/alegreya-sans-latin-500italic.woff": { "name": "fonts/alegreya-sans-latin-500italic.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-500italic.woff", "publicPath": "/static/fonts/alegreya-sans-latin-500italic.woff" }, "fonts/alegreya-sans-latin-700.woff2": { "name": "fonts/alegreya-sans-latin-700.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-700.woff2", "publicPath": "/static/fonts/alegreya-sans-latin-700.woff2" }, "fonts/alegreya-sans-latin-700.woff": { "name": "fonts/alegreya-sans-latin-700.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-700.woff", "publicPath": "/static/fonts/alegreya-sans-latin-700.woff" }, "fonts/alegreya-sans-latin-700italic.woff2": { "name": "fonts/alegreya-sans-latin-700italic.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-700italic.woff2", "publicPath": "/static/fonts/alegreya-sans-latin-700italic.woff2" }, "fonts/alegreya-sans-latin-700italic.woff": { "name": "fonts/alegreya-sans-latin-700italic.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-700italic.woff", "publicPath": "/static/fonts/alegreya-sans-latin-700italic.woff" }, "fonts/alegreya-sans-latin-800.woff2": { "name": "fonts/alegreya-sans-latin-800.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-800.woff2", "publicPath": "/static/fonts/alegreya-sans-latin-800.woff2" }, "fonts/alegreya-sans-latin-800.woff": { "name": "fonts/alegreya-sans-latin-800.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-800.woff", "publicPath": "/static/fonts/alegreya-sans-latin-800.woff" }, "fonts/alegreya-sans-latin-800italic.woff2": { "name": "fonts/alegreya-sans-latin-800italic.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-800italic.woff2", "publicPath": "/static/fonts/alegreya-sans-latin-800italic.woff2" }, "fonts/alegreya-sans-latin-800italic.woff": { "name": "fonts/alegreya-sans-latin-800italic.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-800italic.woff", "publicPath": "/static/fonts/alegreya-sans-latin-800italic.woff" }, "fonts/alegreya-sans-latin-900.woff2": { "name": "fonts/alegreya-sans-latin-900.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-900.woff2", "publicPath": "/static/fonts/alegreya-sans-latin-900.woff2" }, "fonts/alegreya-sans-latin-900.woff": { "name": "fonts/alegreya-sans-latin-900.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-900.woff", "publicPath": "/static/fonts/alegreya-sans-latin-900.woff" }, "fonts/alegreya-sans-latin-900italic.woff2": { "name": "fonts/alegreya-sans-latin-900italic.woff2", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-900italic.woff2", "publicPath": "/static/fonts/alegreya-sans-latin-900italic.woff2" }, "fonts/alegreya-sans-latin-900italic.woff": { "name": "fonts/alegreya-sans-latin-900italic.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/alegreya-sans-latin-900italic.woff", "publicPath": "/static/fonts/alegreya-sans-latin-900italic.woff" }, "js/pdf.worker.min.js": { "name": "js/pdf.worker.min.js", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/pdf.worker.min.js", "publicPath": "/static/js/pdf.worker.min.js" }, "fonts/MathJax_AMS-Regular.woff": { "name": "fonts/MathJax_AMS-Regular.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_AMS-Regular.woff", "publicPath": "/static/fonts/MathJax_AMS-Regular.woff" }, "fonts/MathJax_Calligraphic-Bold.woff": { "name": "fonts/MathJax_Calligraphic-Bold.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_Calligraphic-Bold.woff", "publicPath": "/static/fonts/MathJax_Calligraphic-Bold.woff" }, "fonts/MathJax_Calligraphic-Regular.woff": { "name": "fonts/MathJax_Calligraphic-Regular.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_Calligraphic-Regular.woff", "publicPath": "/static/fonts/MathJax_Calligraphic-Regular.woff" }, "fonts/MathJax_Fraktur-Bold.woff": { "name": "fonts/MathJax_Fraktur-Bold.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_Fraktur-Bold.woff", "publicPath": "/static/fonts/MathJax_Fraktur-Bold.woff" }, "fonts/MathJax_Fraktur-Regular.woff": { "name": "fonts/MathJax_Fraktur-Regular.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_Fraktur-Regular.woff", "publicPath": "/static/fonts/MathJax_Fraktur-Regular.woff" }, "fonts/MathJax_Main-Bold.woff": { "name": "fonts/MathJax_Main-Bold.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_Main-Bold.woff", "publicPath": "/static/fonts/MathJax_Main-Bold.woff" }, "fonts/MathJax_Main-Italic.woff": { "name": "fonts/MathJax_Main-Italic.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_Main-Italic.woff", "publicPath": "/static/fonts/MathJax_Main-Italic.woff" }, "fonts/MathJax_Main-Regular.woff": { "name": "fonts/MathJax_Main-Regular.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_Main-Regular.woff", "publicPath": "/static/fonts/MathJax_Main-Regular.woff" }, "fonts/MathJax_Math-BoldItalic.woff": { "name": "fonts/MathJax_Math-BoldItalic.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_Math-BoldItalic.woff", "publicPath": "/static/fonts/MathJax_Math-BoldItalic.woff" }, "fonts/MathJax_Math-Italic.woff": { "name": "fonts/MathJax_Math-Italic.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_Math-Italic.woff", "publicPath": "/static/fonts/MathJax_Math-Italic.woff" }, "fonts/MathJax_Math-Regular.woff": { "name": "fonts/MathJax_Math-Regular.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_Math-Regular.woff", "publicPath": "/static/fonts/MathJax_Math-Regular.woff" }, "fonts/MathJax_SansSerif-Bold.woff": { "name": "fonts/MathJax_SansSerif-Bold.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_SansSerif-Bold.woff", "publicPath": "/static/fonts/MathJax_SansSerif-Bold.woff" }, "fonts/MathJax_SansSerif-Italic.woff": { "name": "fonts/MathJax_SansSerif-Italic.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_SansSerif-Italic.woff", "publicPath": "/static/fonts/MathJax_SansSerif-Italic.woff" }, "fonts/MathJax_SansSerif-Regular.woff": { "name": "fonts/MathJax_SansSerif-Regular.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_SansSerif-Regular.woff", "publicPath": "/static/fonts/MathJax_SansSerif-Regular.woff" }, "fonts/MathJax_Script-Regular.woff": { "name": "fonts/MathJax_Script-Regular.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_Script-Regular.woff", "publicPath": "/static/fonts/MathJax_Script-Regular.woff" }, "fonts/MathJax_Size1-Regular.woff": { "name": "fonts/MathJax_Size1-Regular.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_Size1-Regular.woff", "publicPath": "/static/fonts/MathJax_Size1-Regular.woff" }, "fonts/MathJax_Size2-Regular.woff": { "name": "fonts/MathJax_Size2-Regular.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_Size2-Regular.woff", "publicPath": "/static/fonts/MathJax_Size2-Regular.woff" }, "fonts/MathJax_Size3-Regular.woff": { "name": "fonts/MathJax_Size3-Regular.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_Size3-Regular.woff", "publicPath": "/static/fonts/MathJax_Size3-Regular.woff" }, "fonts/MathJax_Size4-Regular.woff": { "name": "fonts/MathJax_Size4-Regular.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_Size4-Regular.woff", "publicPath": "/static/fonts/MathJax_Size4-Regular.woff" }, "fonts/MathJax_Typewriter-Regular.woff": { "name": "fonts/MathJax_Typewriter-Regular.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_Typewriter-Regular.woff", "publicPath": "/static/fonts/MathJax_Typewriter-Regular.woff" }, "fonts/MathJax_Vector-Bold.woff": { "name": "fonts/MathJax_Vector-Bold.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_Vector-Bold.woff", "publicPath": "/static/fonts/MathJax_Vector-Bold.woff" }, "fonts/MathJax_Vector-Regular.woff": { "name": "fonts/MathJax_Vector-Regular.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_Vector-Regular.woff", "publicPath": "/static/fonts/MathJax_Vector-Regular.woff" }, "fonts/MathJax_Zero.woff": { "name": "fonts/MathJax_Zero.woff", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/fonts/MathJax_Zero.woff", "publicPath": "/static/fonts/MathJax_Zero.woff" }, "robots.txt": { "name": "robots.txt", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/robots.txt", "publicPath": "/static/robots.txt" }, "js/pdf.worker.min.js.LICENSE.txt": { "name": "js/pdf.worker.min.js.LICENSE.txt", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/pdf.worker.min.js.LICENSE.txt", "publicPath": "/static/js/pdf.worker.min.js.LICENSE.txt" }, "js/add_forge.6d7376990eabad2fde82.js.LICENSE.txt": { "name": "js/add_forge.6d7376990eabad2fde82.js.LICENSE.txt", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/add_forge.6d7376990eabad2fde82.js.LICENSE.txt", "publicPath": "/static/js/add_forge.6d7376990eabad2fde82.js.LICENSE.txt" }, "js/admin.cb05f9f1ab8e1adcdbfb.js.LICENSE.txt": { "name": "js/admin.cb05f9f1ab8e1adcdbfb.js.LICENSE.txt", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/admin.cb05f9f1ab8e1adcdbfb.js.LICENSE.txt", "publicPath": "/static/js/admin.cb05f9f1ab8e1adcdbfb.js.LICENSE.txt" }, "js/auth.7a6ba4612115126f9b59.js.LICENSE.txt": { "name": "js/auth.7a6ba4612115126f9b59.js.LICENSE.txt", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/auth.7a6ba4612115126f9b59.js.LICENSE.txt", "publicPath": "/static/js/auth.7a6ba4612115126f9b59.js.LICENSE.txt" }, - "js/browse.e03893c8e18381ce9581.js.LICENSE.txt": { - "name": "js/browse.e03893c8e18381ce9581.js.LICENSE.txt", - "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/browse.e03893c8e18381ce9581.js.LICENSE.txt", - "publicPath": "/static/js/browse.e03893c8e18381ce9581.js.LICENSE.txt" + "js/browse.dd1b3cff11e141a4fbbc.js.LICENSE.txt": { + "name": "js/browse.dd1b3cff11e141a4fbbc.js.LICENSE.txt", + "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/browse.dd1b3cff11e141a4fbbc.js.LICENSE.txt", + "publicPath": "/static/js/browse.dd1b3cff11e141a4fbbc.js.LICENSE.txt" }, "js/guided_tour.6fdb762b8416936b3c84.js.LICENSE.txt": { "name": "js/guided_tour.6fdb762b8416936b3c84.js.LICENSE.txt", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/guided_tour.6fdb762b8416936b3c84.js.LICENSE.txt", "publicPath": "/static/js/guided_tour.6fdb762b8416936b3c84.js.LICENSE.txt" }, "js/highlightjs.5fd270288fca1f2de6c3.js.LICENSE.txt": { "name": "js/highlightjs.5fd270288fca1f2de6c3.js.LICENSE.txt", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/highlightjs.5fd270288fca1f2de6c3.js.LICENSE.txt", "publicPath": "/static/js/highlightjs.5fd270288fca1f2de6c3.js.LICENSE.txt" }, "js/revision.52cc3dd3b75a01c492af.js.LICENSE.txt": { "name": "js/revision.52cc3dd3b75a01c492af.js.LICENSE.txt", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/revision.52cc3dd3b75a01c492af.js.LICENSE.txt", "publicPath": "/static/js/revision.52cc3dd3b75a01c492af.js.LICENSE.txt" }, "js/save.9fc62242a6cdffdaad2c.js.LICENSE.txt": { "name": "js/save.9fc62242a6cdffdaad2c.js.LICENSE.txt", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/save.9fc62242a6cdffdaad2c.js.LICENSE.txt", "publicPath": "/static/js/save.9fc62242a6cdffdaad2c.js.LICENSE.txt" }, "js/showdown.b448e42a34c43d6a7de5.js.LICENSE.txt": { "name": "js/showdown.b448e42a34c43d6a7de5.js.LICENSE.txt", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/showdown.b448e42a34c43d6a7de5.js.LICENSE.txt", "publicPath": "/static/js/showdown.b448e42a34c43d6a7de5.js.LICENSE.txt" }, "js/vault.e2e8f042b9c742390872.js.LICENSE.txt": { "name": "js/vault.e2e8f042b9c742390872.js.LICENSE.txt", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/vault.e2e8f042b9c742390872.js.LICENSE.txt", "publicPath": "/static/js/vault.e2e8f042b9c742390872.js.LICENSE.txt" }, "js/vendors.d43ce19d06b487934799.js.LICENSE.txt": { "name": "js/vendors.d43ce19d06b487934799.js.LICENSE.txt", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/vendors.d43ce19d06b487934799.js.LICENSE.txt", "publicPath": "/static/js/vendors.d43ce19d06b487934799.js.LICENSE.txt" }, "js/webapp.90df29dadbec1b5bf1f7.js.LICENSE.txt": { "name": "js/webapp.90df29dadbec1b5bf1f7.js.LICENSE.txt", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/webapp.90df29dadbec1b5bf1f7.js.LICENSE.txt", "publicPath": "/static/js/webapp.90df29dadbec1b5bf1f7.js.LICENSE.txt" }, "css/add_forge.737aa359fb467b5670bc.css": { "name": "css/add_forge.737aa359fb467b5670bc.css", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/add_forge.737aa359fb467b5670bc.css", "publicPath": "/static/css/add_forge.737aa359fb467b5670bc.css" }, "js/add_forge.6d7376990eabad2fde82.js": { "name": "js/add_forge.6d7376990eabad2fde82.js", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/add_forge.6d7376990eabad2fde82.js", "publicPath": "/static/js/add_forge.6d7376990eabad2fde82.js" }, "js/admin.cb05f9f1ab8e1adcdbfb.js": { "name": "js/admin.cb05f9f1ab8e1adcdbfb.js", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/admin.cb05f9f1ab8e1adcdbfb.js", "publicPath": "/static/js/admin.cb05f9f1ab8e1adcdbfb.js" }, "css/auth.0336a94c2c02b4b2a4f4.css": { "name": "css/auth.0336a94c2c02b4b2a4f4.css", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/auth.0336a94c2c02b4b2a4f4.css", "publicPath": "/static/css/auth.0336a94c2c02b4b2a4f4.css" }, "js/auth.7a6ba4612115126f9b59.js": { "name": "js/auth.7a6ba4612115126f9b59.js", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/auth.7a6ba4612115126f9b59.js", "publicPath": "/static/js/auth.7a6ba4612115126f9b59.js" }, "css/browse.6315ef52ed73df532bed.css": { "name": "css/browse.6315ef52ed73df532bed.css", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/browse.6315ef52ed73df532bed.css", "publicPath": "/static/css/browse.6315ef52ed73df532bed.css" }, - "js/browse.e03893c8e18381ce9581.js": { - "name": "js/browse.e03893c8e18381ce9581.js", - "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/browse.e03893c8e18381ce9581.js", - "publicPath": "/static/js/browse.e03893c8e18381ce9581.js" + "js/browse.dd1b3cff11e141a4fbbc.js": { + "name": "js/browse.dd1b3cff11e141a4fbbc.js", + "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/browse.dd1b3cff11e141a4fbbc.js", + "publicPath": "/static/js/browse.dd1b3cff11e141a4fbbc.js" }, "css/guided_tour.00d493abd76b55df7e25.css": { "name": "css/guided_tour.00d493abd76b55df7e25.css", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/guided_tour.00d493abd76b55df7e25.css", "publicPath": "/static/css/guided_tour.00d493abd76b55df7e25.css" }, "js/guided_tour.6fdb762b8416936b3c84.js": { "name": "js/guided_tour.6fdb762b8416936b3c84.js", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/guided_tour.6fdb762b8416936b3c84.js", "publicPath": "/static/js/guided_tour.6fdb762b8416936b3c84.js" }, "css/origin.5b45e9e6e54fd51ee886.css": { "name": "css/origin.5b45e9e6e54fd51ee886.css", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/origin.5b45e9e6e54fd51ee886.css", "publicPath": "/static/css/origin.5b45e9e6e54fd51ee886.css" }, "js/origin.278a63bfc40cb4173975.js": { "name": "js/origin.278a63bfc40cb4173975.js", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/origin.278a63bfc40cb4173975.js", "publicPath": "/static/js/origin.278a63bfc40cb4173975.js" }, "css/revision.5ddd36d69e1760bfa29d.css": { "name": "css/revision.5ddd36d69e1760bfa29d.css", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/revision.5ddd36d69e1760bfa29d.css", "publicPath": "/static/css/revision.5ddd36d69e1760bfa29d.css" }, "js/revision.52cc3dd3b75a01c492af.js": { "name": "js/revision.52cc3dd3b75a01c492af.js", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/revision.52cc3dd3b75a01c492af.js", "publicPath": "/static/js/revision.52cc3dd3b75a01c492af.js" }, "js/save.9fc62242a6cdffdaad2c.js": { "name": "js/save.9fc62242a6cdffdaad2c.js", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/save.9fc62242a6cdffdaad2c.js", "publicPath": "/static/js/save.9fc62242a6cdffdaad2c.js" }, "css/vault.25fc5883f848b48ffa5b.css": { "name": "css/vault.25fc5883f848b48ffa5b.css", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/vault.25fc5883f848b48ffa5b.css", "publicPath": "/static/css/vault.25fc5883f848b48ffa5b.css" }, "js/vault.e2e8f042b9c742390872.js": { "name": "js/vault.e2e8f042b9c742390872.js", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/vault.e2e8f042b9c742390872.js", "publicPath": "/static/js/vault.e2e8f042b9c742390872.js" }, "css/vendors.c225243a224e4caea239.css": { "name": "css/vendors.c225243a224e4caea239.css", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/vendors.c225243a224e4caea239.css", "publicPath": "/static/css/vendors.c225243a224e4caea239.css" }, "js/vendors.d43ce19d06b487934799.js": { "name": "js/vendors.d43ce19d06b487934799.js", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/vendors.d43ce19d06b487934799.js", "publicPath": "/static/js/vendors.d43ce19d06b487934799.js" }, "css/webapp.ac2aaf02609c198af58a.css": { "name": "css/webapp.ac2aaf02609c198af58a.css", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/webapp.ac2aaf02609c198af58a.css", "publicPath": "/static/css/webapp.ac2aaf02609c198af58a.css" }, "js/webapp.90df29dadbec1b5bf1f7.js": { "name": "js/webapp.90df29dadbec1b5bf1f7.js", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/webapp.90df29dadbec1b5bf1f7.js", "publicPath": "/static/js/webapp.90df29dadbec1b5bf1f7.js" }, "js/d3.f989183a810fb9dbb086.js": { "name": "js/d3.f989183a810fb9dbb086.js", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/d3.f989183a810fb9dbb086.js", "publicPath": "/static/js/d3.f989183a810fb9dbb086.js" }, "css/highlightjs.ae43064ab38a65a04d81.css": { "name": "css/highlightjs.ae43064ab38a65a04d81.css", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/highlightjs.ae43064ab38a65a04d81.css", "publicPath": "/static/css/highlightjs.ae43064ab38a65a04d81.css" }, "js/highlightjs.5fd270288fca1f2de6c3.js": { "name": "js/highlightjs.5fd270288fca1f2de6c3.js", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/highlightjs.5fd270288fca1f2de6c3.js", "publicPath": "/static/js/highlightjs.5fd270288fca1f2de6c3.js" }, "css/showdown.426fbf6a7a6653fd4cbb.css": { "name": "css/showdown.426fbf6a7a6653fd4cbb.css", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/showdown.426fbf6a7a6653fd4cbb.css", "publicPath": "/static/css/showdown.426fbf6a7a6653fd4cbb.css" }, "js/showdown.b448e42a34c43d6a7de5.js": { "name": "js/showdown.b448e42a34c43d6a7de5.js", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/showdown.b448e42a34c43d6a7de5.js", "publicPath": "/static/js/showdown.b448e42a34c43d6a7de5.js" }, "css/org.6851b70c924e28f6bf51.css": { "name": "css/org.6851b70c924e28f6bf51.css", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/org.6851b70c924e28f6bf51.css", "publicPath": "/static/css/org.6851b70c924e28f6bf51.css" }, "js/org.9adc9a39a210c2fb4be0.js": { "name": "js/org.9adc9a39a210c2fb4be0.js", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/org.9adc9a39a210c2fb4be0.js", "publicPath": "/static/js/org.9adc9a39a210c2fb4be0.js" }, "js/pdfjs.7fa499e22fea56527058.js": { "name": "js/pdfjs.7fa499e22fea56527058.js", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/pdfjs.7fa499e22fea56527058.js", "publicPath": "/static/js/pdfjs.7fa499e22fea56527058.js" }, "js/mathjax.a0046af7afe82fd10728.js": { "name": "js/mathjax.a0046af7afe82fd10728.js", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/mathjax.a0046af7afe82fd10728.js", "publicPath": "/static/js/mathjax.a0046af7afe82fd10728.js" }, "css/add_forge.737aa359fb467b5670bc.css.map": { "name": "css/add_forge.737aa359fb467b5670bc.css.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/add_forge.737aa359fb467b5670bc.css.map", "publicPath": "/static/css/add_forge.737aa359fb467b5670bc.css.map" }, "css/auth.0336a94c2c02b4b2a4f4.css.map": { "name": "css/auth.0336a94c2c02b4b2a4f4.css.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/auth.0336a94c2c02b4b2a4f4.css.map", "publicPath": "/static/css/auth.0336a94c2c02b4b2a4f4.css.map" }, "css/browse.6315ef52ed73df532bed.css.map": { "name": "css/browse.6315ef52ed73df532bed.css.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/browse.6315ef52ed73df532bed.css.map", "publicPath": "/static/css/browse.6315ef52ed73df532bed.css.map" }, "css/guided_tour.00d493abd76b55df7e25.css.map": { "name": "css/guided_tour.00d493abd76b55df7e25.css.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/guided_tour.00d493abd76b55df7e25.css.map", "publicPath": "/static/css/guided_tour.00d493abd76b55df7e25.css.map" }, - "css/revision.5ddd36d69e1760bfa29d.css.map": { - "name": "css/revision.5ddd36d69e1760bfa29d.css.map", - "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/revision.5ddd36d69e1760bfa29d.css.map", - "publicPath": "/static/css/revision.5ddd36d69e1760bfa29d.css.map" - }, "css/origin.5b45e9e6e54fd51ee886.css.map": { "name": "css/origin.5b45e9e6e54fd51ee886.css.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/origin.5b45e9e6e54fd51ee886.css.map", "publicPath": "/static/css/origin.5b45e9e6e54fd51ee886.css.map" }, + "css/revision.5ddd36d69e1760bfa29d.css.map": { + "name": "css/revision.5ddd36d69e1760bfa29d.css.map", + "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/revision.5ddd36d69e1760bfa29d.css.map", + "publicPath": "/static/css/revision.5ddd36d69e1760bfa29d.css.map" + }, "css/vault.25fc5883f848b48ffa5b.css.map": { "name": "css/vault.25fc5883f848b48ffa5b.css.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/vault.25fc5883f848b48ffa5b.css.map", "publicPath": "/static/css/vault.25fc5883f848b48ffa5b.css.map" }, "css/vendors.c225243a224e4caea239.css.map": { "name": "css/vendors.c225243a224e4caea239.css.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/vendors.c225243a224e4caea239.css.map", "publicPath": "/static/css/vendors.c225243a224e4caea239.css.map" }, "css/webapp.ac2aaf02609c198af58a.css.map": { "name": "css/webapp.ac2aaf02609c198af58a.css.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/webapp.ac2aaf02609c198af58a.css.map", "publicPath": "/static/css/webapp.ac2aaf02609c198af58a.css.map" }, "css/highlightjs.ae43064ab38a65a04d81.css.map": { "name": "css/highlightjs.ae43064ab38a65a04d81.css.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/highlightjs.ae43064ab38a65a04d81.css.map", "publicPath": "/static/css/highlightjs.ae43064ab38a65a04d81.css.map" }, "css/showdown.426fbf6a7a6653fd4cbb.css.map": { "name": "css/showdown.426fbf6a7a6653fd4cbb.css.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/showdown.426fbf6a7a6653fd4cbb.css.map", "publicPath": "/static/css/showdown.426fbf6a7a6653fd4cbb.css.map" }, "css/org.6851b70c924e28f6bf51.css.map": { "name": "css/org.6851b70c924e28f6bf51.css.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/css/org.6851b70c924e28f6bf51.css.map", "publicPath": "/static/css/org.6851b70c924e28f6bf51.css.map" }, "js/add_forge.6d7376990eabad2fde82.js.map": { "name": "js/add_forge.6d7376990eabad2fde82.js.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/add_forge.6d7376990eabad2fde82.js.map", "publicPath": "/static/js/add_forge.6d7376990eabad2fde82.js.map" }, "js/admin.cb05f9f1ab8e1adcdbfb.js.map": { "name": "js/admin.cb05f9f1ab8e1adcdbfb.js.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/admin.cb05f9f1ab8e1adcdbfb.js.map", "publicPath": "/static/js/admin.cb05f9f1ab8e1adcdbfb.js.map" }, "js/auth.7a6ba4612115126f9b59.js.map": { "name": "js/auth.7a6ba4612115126f9b59.js.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/auth.7a6ba4612115126f9b59.js.map", "publicPath": "/static/js/auth.7a6ba4612115126f9b59.js.map" }, - "js/browse.e03893c8e18381ce9581.js.map": { - "name": "js/browse.e03893c8e18381ce9581.js.map", - "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/browse.e03893c8e18381ce9581.js.map", - "publicPath": "/static/js/browse.e03893c8e18381ce9581.js.map" + "js/browse.dd1b3cff11e141a4fbbc.js.map": { + "name": "js/browse.dd1b3cff11e141a4fbbc.js.map", + "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/browse.dd1b3cff11e141a4fbbc.js.map", + "publicPath": "/static/js/browse.dd1b3cff11e141a4fbbc.js.map" }, "js/guided_tour.6fdb762b8416936b3c84.js.map": { "name": "js/guided_tour.6fdb762b8416936b3c84.js.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/guided_tour.6fdb762b8416936b3c84.js.map", "publicPath": "/static/js/guided_tour.6fdb762b8416936b3c84.js.map" }, "js/origin.278a63bfc40cb4173975.js.map": { "name": "js/origin.278a63bfc40cb4173975.js.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/origin.278a63bfc40cb4173975.js.map", "publicPath": "/static/js/origin.278a63bfc40cb4173975.js.map" }, "js/revision.52cc3dd3b75a01c492af.js.map": { "name": "js/revision.52cc3dd3b75a01c492af.js.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/revision.52cc3dd3b75a01c492af.js.map", "publicPath": "/static/js/revision.52cc3dd3b75a01c492af.js.map" }, "js/save.9fc62242a6cdffdaad2c.js.map": { "name": "js/save.9fc62242a6cdffdaad2c.js.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/save.9fc62242a6cdffdaad2c.js.map", "publicPath": "/static/js/save.9fc62242a6cdffdaad2c.js.map" }, "js/vault.e2e8f042b9c742390872.js.map": { "name": "js/vault.e2e8f042b9c742390872.js.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/vault.e2e8f042b9c742390872.js.map", "publicPath": "/static/js/vault.e2e8f042b9c742390872.js.map" }, "js/vendors.d43ce19d06b487934799.js.map": { "name": "js/vendors.d43ce19d06b487934799.js.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/vendors.d43ce19d06b487934799.js.map", "publicPath": "/static/js/vendors.d43ce19d06b487934799.js.map" }, "js/webapp.90df29dadbec1b5bf1f7.js.map": { "name": "js/webapp.90df29dadbec1b5bf1f7.js.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/webapp.90df29dadbec1b5bf1f7.js.map", "publicPath": "/static/js/webapp.90df29dadbec1b5bf1f7.js.map" }, "js/d3.f989183a810fb9dbb086.js.map": { "name": "js/d3.f989183a810fb9dbb086.js.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/d3.f989183a810fb9dbb086.js.map", "publicPath": "/static/js/d3.f989183a810fb9dbb086.js.map" }, "js/highlightjs.5fd270288fca1f2de6c3.js.map": { "name": "js/highlightjs.5fd270288fca1f2de6c3.js.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/highlightjs.5fd270288fca1f2de6c3.js.map", "publicPath": "/static/js/highlightjs.5fd270288fca1f2de6c3.js.map" }, "js/showdown.b448e42a34c43d6a7de5.js.map": { "name": "js/showdown.b448e42a34c43d6a7de5.js.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/showdown.b448e42a34c43d6a7de5.js.map", "publicPath": "/static/js/showdown.b448e42a34c43d6a7de5.js.map" }, "js/org.9adc9a39a210c2fb4be0.js.map": { "name": "js/org.9adc9a39a210c2fb4be0.js.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/org.9adc9a39a210c2fb4be0.js.map", "publicPath": "/static/js/org.9adc9a39a210c2fb4be0.js.map" }, "js/pdfjs.7fa499e22fea56527058.js.map": { "name": "js/pdfjs.7fa499e22fea56527058.js.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/pdfjs.7fa499e22fea56527058.js.map", "publicPath": "/static/js/pdfjs.7fa499e22fea56527058.js.map" }, "js/mathjax.a0046af7afe82fd10728.js.map": { "name": "js/mathjax.a0046af7afe82fd10728.js.map", "path": "/var/lib/jenkins/workspace/DWAPPS/pypi-upload/static/js/mathjax.a0046af7afe82fd10728.js.map", "publicPath": "/static/js/mathjax.a0046af7afe82fd10728.js.map" } }, "chunks": { "add_forge": [ "css/add_forge.737aa359fb467b5670bc.css", "js/add_forge.6d7376990eabad2fde82.js" ], "admin": [ "js/admin.cb05f9f1ab8e1adcdbfb.js" ], "auth": [ "css/auth.0336a94c2c02b4b2a4f4.css", "js/auth.7a6ba4612115126f9b59.js" ], "browse": [ "css/browse.6315ef52ed73df532bed.css", - "js/browse.e03893c8e18381ce9581.js" + "js/browse.dd1b3cff11e141a4fbbc.js" ], "guided_tour": [ "css/guided_tour.00d493abd76b55df7e25.css", "js/guided_tour.6fdb762b8416936b3c84.js" ], "origin": [ "css/origin.5b45e9e6e54fd51ee886.css", "js/origin.278a63bfc40cb4173975.js" ], "revision": [ "css/revision.5ddd36d69e1760bfa29d.css", "js/revision.52cc3dd3b75a01c492af.js" ], "save": [ "js/save.9fc62242a6cdffdaad2c.js" ], "vault": [ "css/vault.25fc5883f848b48ffa5b.css", "js/vault.e2e8f042b9c742390872.js" ], "vendors": [ "css/vendors.c225243a224e4caea239.css", "js/vendors.d43ce19d06b487934799.js" ], "webapp": [ "css/webapp.ac2aaf02609c198af58a.css", "js/webapp.90df29dadbec1b5bf1f7.js" ] }, "publicPath": "/static/" } \ No newline at end of file diff --git a/swh.web.egg-info/PKG-INFO b/swh.web.egg-info/PKG-INFO index 1383b005..5851122e 100644 --- a/swh.web.egg-info/PKG-INFO +++ b/swh.web.egg-info/PKG-INFO @@ -1,206 +1,206 @@ Metadata-Version: 2.1 Name: swh.web -Version: 0.0.385 +Version: 0.0.386 Summary: Software Heritage Web UI Home-page: https://forge.softwareheritage.org/diffusion/DWUI/ Author: Software Heritage developers Author-email: swh-devel@inria.fr License: UNKNOWN Project-URL: Bug Reports, https://forge.softwareheritage.org/maniphest Project-URL: Funding, https://www.softwareheritage.org/donate Project-URL: Source, https://forge.softwareheritage.org/source/swh-web Project-URL: Documentation, https://docs.softwareheritage.org/devel/swh-web/ Platform: UNKNOWN Classifier: Programming Language :: Python :: 3 Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+) Classifier: Operating System :: OS Independent Classifier: Development Status :: 5 - Production/Stable Classifier: Framework :: Django Requires-Python: >=3.7 Description-Content-Type: text/markdown Provides-Extra: testing License-File: LICENSE License-File: AUTHORS # swh-web This repository holds the development of Software Heritage web applications: * swh-web API (https://archive.softwareheritage.org/api): enables to query the content of the archive through HTTP requests and get responses in JSON or YAML. * swh-web browse (https://archive.softwareheritage.org/browse): graphical interface that eases the navigation in the archive. Documentation about how to use these components but also the details of their URI schemes can be found in the docs folder. The produced HTML documentation can be read and browsed at https://docs.softwareheritage.org/devel/swh-web/index.html. ## Technical details Those applications are powered by: * [Django Web Framework](https://www.djangoproject.com/) on the backend side with the following extensions enabled: * [django-rest-framework](http://www.django-rest-framework.org/) * [django-webpack-loader](https://github.com/owais/django-webpack-loader) * [django-js-reverse](http://django-js-reverse.readthedocs.io/en/latest/) * [webpack](https://webpack.js.org/) on the frontend side for better static assets management, including: * assets dependencies management and retrieval through [yarn](https://yarnpkg.com/en/) * linting of custom javascript code (through [eslint](https://eslint.org/)) and stylesheets (through [stylelint](https://stylelint.io/)) * use of [es6](http://es6-features.org) syntax and advanced javascript feature like [async/await](https://javascript.info/async-await) or [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) thanks to [babel](https://babeljs.io/) (es6 to es5 transpiler and polyfills provider) * assets minification (using [terser](https://github.com/terser-js/terser) and [cssnano](http://cssnano.co/)) but also dead code elimination for production use ## How to build, run and test ### Backend requirements First you will need [Python 3](https://www.python.org) and a complete [swh development environment](https://forge.softwareheritage.org/source/swh-environment/) installed. To run the backend, you need to have the following [Python 3 modules](requirements.txt) installed. To run the backend tests, the following [Python 3 modules](requirements-test.txt) are also required to be installed. One easy way to install them is to use the `pip` tool: ``` $ pip install -r requirements.txt -r requirements-test.txt ``` ### Frontend requirements To compile the frontend assets, you need to have [nodejs](https://nodejs.org/en/) >= 12.0.0 and [yarn](https://yarnpkg.com/en/) installed. If you are on Debian, you can easily install an up to date nodejs from the [nodesource](https://github.com/nodesource/distributions/blob/master/README.md) repository. Packages for yarn can be installed by following [these instructions](https://yarnpkg.com/en/docs/install#debian-stable). Alternatively, you can install yarn with `npm install yarn`, and add `YARN=node_modules/yarn/bin/yarn` as argument whenever you run `make`. Please note that the static assets bundles generated by webpack are not stored in the git repository. Follow the instructions below in order to generate them in order to be able to run the frontend part of the web applications. ### Make targets to execute the applications Below is the list of available make targets that can be executed from the root directory of swh-web in order to build and/or execute the web applications under various configurations: * **run-django-webpack-devserver**: Compile and serve not optimized (without mignification and dead code elimination) frontend static assets using [webpack-dev-server](https://github.com/webpack/webpack-dev-server) and run django server with development settings. This is the recommended target to use when developing swh-web as it enables automatic reloading of backend and frontend part of the applications when modifying source files (*.py, *.js, *.css, *.html). * **run-django-webpack-dev**: Compile not optimized (no minification, no dead code elimination) frontend static assets using webpack and run django server with development settings. This is the recommended target when one only wants to develop the backend side of the application. * **run-django-webpack-prod**: Compile optimized (with minification and dead code elimination) frontend static assets using webpack and run django server with production settings. This is useful to test the applications in production mode (with the difference that static assets are served by django). Production settings notably enable advanced django caching and you will need to have [memcached](https://memcached.org/) installed for that feature to work. * **run-django-server-dev**: Run the django server with development settings but without compiling frontend static assets through webpack. * **run-django-server-prod**: Run the django server with production settings but without compiling frontend static assets through webpack. * **run-gunicorn-server**: Run the web applications with production settings in a [gunicorn](http://gunicorn.org/) worker as they will be in real production environment. Once one of these targets executed, the web applications can be executed by pointing your browser to http://localhost:5004. ### Make targets to test the applications Some make targets are also available to easily execute the backend and frontend tests of the Software Heritage web applications. The backend tests are powered by the [pytest](https://docs.pytest.org/en/latest/) and [hypothesis](https://hypothesis.readthedocs.io/en/latest/) frameworks while the frontend ones rely on the use of the [cypress](https://www.cypress.io/) tool. Below is the exhaustive list of those targets: * **test**: execute the backend tests using a fast hypothesis profile (only one input example will be provided for each test) * **test-full**: execute the backend tests using a slower hypothesis profile (one hundred of input examples will be provided for each test which helps spotting possible bugs) * **test-frontend**: execute the frontend tests using cypress in headless mode but with some slow test suites disabled * **test-frontend-full**: execute the frontend tests using cypress in headless mode with all test suites enabled * **test-frontend-ui**: execute the frontend tests using the cypress GUI but with some slow test suites disabled * **test-frontend-full-ui**: execute the frontend tests using the cypress GUI with all test suites enabled ### Yarn targets Below is a list of available yarn targets in order to only execute the frontend static assets compilation (no web server will be executed): * **build-dev**: compile not optimized (without mignification and dead code elimination) frontend static assets and store the results in the `swh/web/static` folder. * **build**: compile optimized (with mignification and dead code elimination) frontend static assets and store the results in the `swh/web/static` folder. **The build target must be executed prior performing the Debian packaging of swh-web** in order for the package to contain the optimized assets dedicated to production environment. To execute these targets, issue the following command: ``` $ yarn ``` diff --git a/swh.web.egg-info/SOURCES.txt b/swh.web.egg-info/SOURCES.txt index 4997b15a..48de7ff8 100644 --- a/swh.web.egg-info/SOURCES.txt +++ b/swh.web.egg-info/SOURCES.txt @@ -1,2091 +1,2091 @@ .git-blame-ignore-revs .gitignore .pre-commit-config.yaml AUTHORS CODE_OF_CONDUCT.md CONTRIBUTORS LICENSE MANIFEST.in Makefile Makefile.local README.md conftest.py cypress.json mypy.ini package.json pyproject.toml pytest.ini requirements-swh.txt requirements-test.txt requirements.txt setup.cfg setup.py tox.ini yarn.lock assets/config/.bootstraprc assets/config/.eslintignore assets/config/.eslintrc assets/config/bootstrap-pre-customize.scss assets/config/webpack.config.development.js assets/config/webpack.config.production.js assets/config/webpack-plugins/dump-highlightjs-languages-data-plugin.js assets/config/webpack-plugins/fix-swh-source-maps-webpack-plugin.js assets/config/webpack-plugins/generate-weblabels-webpack-plugin/README.md assets/config/webpack-plugins/generate-weblabels-webpack-plugin/index.js assets/config/webpack-plugins/generate-weblabels-webpack-plugin/jslicenses.ejs assets/config/webpack-plugins/generate-weblabels-webpack-plugin/plugin-options-schema.json assets/config/webpack-plugins/generate-weblabels-webpack-plugin/spdx-licenses-mapping.js assets/src/bundles/add_forge/add-forge.css assets/src/bundles/add_forge/add-request-history-item.ejs assets/src/bundles/add_forge/create-request.js assets/src/bundles/add_forge/forge-admin-email.ejs assets/src/bundles/add_forge/index.js assets/src/bundles/add_forge/moderation-dashboard.js assets/src/bundles/add_forge/request-dashboard.js assets/src/bundles/admin/deposit.js assets/src/bundles/admin/index.js assets/src/bundles/admin/mailmap-form.ejs assets/src/bundles/admin/mailmap.js assets/src/bundles/admin/origin-save.js assets/src/bundles/auth/auth.css assets/src/bundles/auth/index.js assets/src/bundles/browse/breadcrumbs.css assets/src/bundles/browse/browse-utils.js assets/src/bundles/browse/browse.css assets/src/bundles/browse/content.css assets/src/bundles/browse/index.js assets/src/bundles/browse/origin-search.js assets/src/bundles/browse/snapshot-navigation.css assets/src/bundles/browse/snapshot-navigation.js assets/src/bundles/browse/swhid-utils.js assets/src/bundles/guided_tour/guided-tour-steps.yaml assets/src/bundles/guided_tour/index.js assets/src/bundles/guided_tour/swh-introjs.css assets/src/bundles/origin/index.js assets/src/bundles/origin/utils.js assets/src/bundles/origin/visits-calendar.js assets/src/bundles/origin/visits-histogram.js assets/src/bundles/origin/visits-reporting.css assets/src/bundles/origin/visits-reporting.js assets/src/bundles/revision/diff-panel.ejs assets/src/bundles/revision/diff-utils.js assets/src/bundles/revision/index.js assets/src/bundles/revision/log-utils.js assets/src/bundles/revision/revision.css assets/src/bundles/save/artifact-form-row.ejs assets/src/bundles/save/index.js assets/src/bundles/vault/index.js assets/src/bundles/vault/vault-create-tasks.js assets/src/bundles/vault/vault-table-row.ejs assets/src/bundles/vault/vault-ui.js assets/src/bundles/vault/vault.css assets/src/bundles/vendors/datatables.css assets/src/bundles/vendors/elementsfrompoint-polyfill.js assets/src/bundles/vendors/index.js assets/src/bundles/webapp/badges.js assets/src/bundles/webapp/breadcrumbs.css assets/src/bundles/webapp/code-highlighting.js assets/src/bundles/webapp/coverage.css assets/src/bundles/webapp/history-counters.css assets/src/bundles/webapp/history-counters.js assets/src/bundles/webapp/iframes.js assets/src/bundles/webapp/index.js assets/src/bundles/webapp/math-typesetting.js assets/src/bundles/webapp/notebook-rendering.js assets/src/bundles/webapp/notebook.css assets/src/bundles/webapp/pdf-rendering.js assets/src/bundles/webapp/readme-rendering.js assets/src/bundles/webapp/sentry.js assets/src/bundles/webapp/status-widget.css assets/src/bundles/webapp/status-widget.js assets/src/bundles/webapp/webapp-utils.js assets/src/bundles/webapp/webapp.css assets/src/bundles/webapp/xss-filtering.js assets/src/thirdparty/jquery.tabSlideOut/LICENSE assets/src/thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.css assets/src/thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.js assets/src/utils/constants.js assets/src/utils/d3.js assets/src/utils/functions.js assets/src/utils/highlightjs.css assets/src/utils/highlightjs.js assets/src/utils/hljs-swh-theme.css assets/src/utils/mathjax.js assets/src/utils/org.css assets/src/utils/org.js assets/src/utils/requests-filter-checkbox.ejs assets/src/utils/scrolling.js assets/src/utils/showdown.css assets/src/utils/showdown.js cypress/fixtures/add-forge-now-requests.json cypress/fixtures/example.json cypress/fixtures/origin-save.json cypress/fixtures/save-task-info.json cypress/fixtures/swh_1_dir_cd19126d815470b28919d64b2a8e6a3e37f900dd.tar.gz cypress/fixtures/swh_1_rev_1c480a4573d2a003fc2630c21c2b25829de49972.git.tar cypress/integration/add-forge-now-request-create.spec.js cypress/integration/add-forge-now-request-dashboard.spec.js cypress/integration/add-forge-now-requests-moderation.spec.js cypress/integration/admin.spec.js cypress/integration/api-tokens.spec.js cypress/integration/back-to-top.spec.js cypress/integration/code-highlighting.spec.js cypress/integration/content-display.spec.js cypress/integration/content-rendering.spec.js cypress/integration/deposit-admin.spec.js cypress/integration/directory.spec.js cypress/integration/errors.spec.js cypress/integration/guided-tour.spec.js cypress/integration/home.spec.js cypress/integration/language-select.spec.js cypress/integration/layout.spec.js cypress/integration/mailmap.spec.js cypress/integration/origin-browse.spec.js cypress/integration/origin-save.spec.js cypress/integration/origin-search.spec.js cypress/integration/origin-visits.spec.js cypress/integration/persistent-identifiers.spec.js cypress/integration/revision-diff.spec.js cypress/integration/sidebar.spec.js cypress/integration/vault.spec.js cypress/plugins/index.js cypress/support/index.js cypress/utils/index.js docs/.gitignore docs/Makefile docs/conf.py docs/developers-info.rst docs/index.rst docs/uri-scheme-api-content.rst docs/uri-scheme-api-directory.rst docs/uri-scheme-api-graph.rst -docs/uri-scheme-api-identifiers.rst docs/uri-scheme-api-origin.rst docs/uri-scheme-api-release.rst docs/uri-scheme-api-revision.rst docs/uri-scheme-api-snapshot.rst docs/uri-scheme-api-stat.rst +docs/uri-scheme-api-swhids.rst docs/uri-scheme-api-vault.rst docs/uri-scheme-api.rst docs/uri-scheme-browse-content.rst docs/uri-scheme-browse-directory.rst docs/uri-scheme-browse-origin.rst docs/uri-scheme-browse-release.rst docs/uri-scheme-browse-revision.rst docs/uri-scheme-browse-snapshot.rst docs/uri-scheme-browse.rst -docs/uri-scheme-identifiers.rst docs/uri-scheme-misc.rst +docs/uri-scheme-swhids.rst docs/_static/.placeholder docs/_templates/.placeholder static/robots.txt static/webpack-stats.json static/css/add_forge.737aa359fb467b5670bc.css static/css/add_forge.737aa359fb467b5670bc.css.map static/css/auth.0336a94c2c02b4b2a4f4.css static/css/auth.0336a94c2c02b4b2a4f4.css.map static/css/browse.6315ef52ed73df532bed.css static/css/browse.6315ef52ed73df532bed.css.map static/css/guided_tour.00d493abd76b55df7e25.css static/css/guided_tour.00d493abd76b55df7e25.css.map static/css/highlightjs.ae43064ab38a65a04d81.css static/css/highlightjs.ae43064ab38a65a04d81.css.map static/css/org.6851b70c924e28f6bf51.css static/css/org.6851b70c924e28f6bf51.css.map static/css/origin.5b45e9e6e54fd51ee886.css static/css/origin.5b45e9e6e54fd51ee886.css.map static/css/revision.5ddd36d69e1760bfa29d.css static/css/revision.5ddd36d69e1760bfa29d.css.map static/css/showdown.426fbf6a7a6653fd4cbb.css static/css/showdown.426fbf6a7a6653fd4cbb.css.map static/css/vault.25fc5883f848b48ffa5b.css static/css/vault.25fc5883f848b48ffa5b.css.map static/css/vendors.c225243a224e4caea239.css static/css/vendors.c225243a224e4caea239.css.map static/css/webapp.ac2aaf02609c198af58a.css static/css/webapp.ac2aaf02609c198af58a.css.map static/fonts/MathJax_AMS-Regular.woff static/fonts/MathJax_Calligraphic-Bold.woff static/fonts/MathJax_Calligraphic-Regular.woff static/fonts/MathJax_Fraktur-Bold.woff static/fonts/MathJax_Fraktur-Regular.woff static/fonts/MathJax_Main-Bold.woff static/fonts/MathJax_Main-Italic.woff static/fonts/MathJax_Main-Regular.woff static/fonts/MathJax_Math-BoldItalic.woff static/fonts/MathJax_Math-Italic.woff static/fonts/MathJax_Math-Regular.woff static/fonts/MathJax_SansSerif-Bold.woff static/fonts/MathJax_SansSerif-Italic.woff static/fonts/MathJax_SansSerif-Regular.woff static/fonts/MathJax_Script-Regular.woff static/fonts/MathJax_Size1-Regular.woff static/fonts/MathJax_Size2-Regular.woff static/fonts/MathJax_Size3-Regular.woff static/fonts/MathJax_Size4-Regular.woff static/fonts/MathJax_Typewriter-Regular.woff static/fonts/MathJax_Vector-Bold.woff static/fonts/MathJax_Vector-Regular.woff static/fonts/MathJax_Zero.woff static/fonts/alegreya-latin-400.woff static/fonts/alegreya-latin-400.woff2 static/fonts/alegreya-latin-400italic.woff static/fonts/alegreya-latin-400italic.woff2 static/fonts/alegreya-latin-500.woff static/fonts/alegreya-latin-500.woff2 static/fonts/alegreya-latin-500italic.woff static/fonts/alegreya-latin-500italic.woff2 static/fonts/alegreya-latin-700.woff static/fonts/alegreya-latin-700.woff2 static/fonts/alegreya-latin-700italic.woff static/fonts/alegreya-latin-700italic.woff2 static/fonts/alegreya-latin-800.woff static/fonts/alegreya-latin-800.woff2 static/fonts/alegreya-latin-800italic.woff static/fonts/alegreya-latin-800italic.woff2 static/fonts/alegreya-latin-900.woff static/fonts/alegreya-latin-900.woff2 static/fonts/alegreya-latin-900italic.woff static/fonts/alegreya-latin-900italic.woff2 static/fonts/alegreya-sans-latin-100.woff static/fonts/alegreya-sans-latin-100.woff2 static/fonts/alegreya-sans-latin-100italic.woff static/fonts/alegreya-sans-latin-100italic.woff2 static/fonts/alegreya-sans-latin-300.woff static/fonts/alegreya-sans-latin-300.woff2 static/fonts/alegreya-sans-latin-300italic.woff static/fonts/alegreya-sans-latin-300italic.woff2 static/fonts/alegreya-sans-latin-400.woff static/fonts/alegreya-sans-latin-400.woff2 static/fonts/alegreya-sans-latin-400italic.woff static/fonts/alegreya-sans-latin-400italic.woff2 static/fonts/alegreya-sans-latin-500.woff static/fonts/alegreya-sans-latin-500.woff2 static/fonts/alegreya-sans-latin-500italic.woff static/fonts/alegreya-sans-latin-500italic.woff2 static/fonts/alegreya-sans-latin-700.woff static/fonts/alegreya-sans-latin-700.woff2 static/fonts/alegreya-sans-latin-700italic.woff static/fonts/alegreya-sans-latin-700italic.woff2 static/fonts/alegreya-sans-latin-800.woff static/fonts/alegreya-sans-latin-800.woff2 static/fonts/alegreya-sans-latin-800italic.woff static/fonts/alegreya-sans-latin-800italic.woff2 static/fonts/alegreya-sans-latin-900.woff static/fonts/alegreya-sans-latin-900.woff2 static/fonts/alegreya-sans-latin-900italic.woff static/fonts/alegreya-sans-latin-900italic.woff2 static/fonts/materialdesignicons-webfont.eot static/fonts/materialdesignicons-webfont.ttf static/fonts/materialdesignicons-webfont.woff static/fonts/materialdesignicons-webfont.woff2 static/img/arrow-up-small.png static/img/swh-donor.png static/img/swh-logo-white.svg static/img/swh-logo.png static/img/swh-logo.svg static/img/swh-spinner-small.gif static/img/swh-spinner.gif static/img/swh-vault.png static/img/icons/swh-logo-32x32.png static/img/icons/swh-logo-archive-180x180.png static/img/icons/swh-logo-archive-192x192.png static/img/icons/swh-logo-archive-270x270.png static/img/logos/bitbucket.png static/img/logos/cgit.png static/img/logos/cran.png static/img/logos/debian.png static/img/logos/elife.png static/img/logos/gitea.png static/img/logos/github.png static/img/logos/gitlab.png static/img/logos/gitorious.png static/img/logos/gnu.png static/img/logos/googlecode.png static/img/logos/guix.png static/img/logos/hal.png static/img/logos/heptapod.png static/img/logos/inria.jpg static/img/logos/ipol.png static/img/logos/launchpad.png static/img/logos/nixos.png static/img/logos/npm.png static/img/logos/opam.png static/img/logos/phabricator.png static/img/logos/pypi.png static/img/logos/sourceforge.png static/img/thirdParty/chosen-sprite.png static/img/thirdParty/chosen-sprite@2x.png static/js/add_forge.6d7376990eabad2fde82.js static/js/add_forge.6d7376990eabad2fde82.js.LICENSE.txt static/js/add_forge.6d7376990eabad2fde82.js.map static/js/admin.cb05f9f1ab8e1adcdbfb.js static/js/admin.cb05f9f1ab8e1adcdbfb.js.LICENSE.txt static/js/admin.cb05f9f1ab8e1adcdbfb.js.map static/js/auth.7a6ba4612115126f9b59.js static/js/auth.7a6ba4612115126f9b59.js.LICENSE.txt static/js/auth.7a6ba4612115126f9b59.js.map -static/js/browse.e03893c8e18381ce9581.js -static/js/browse.e03893c8e18381ce9581.js.LICENSE.txt -static/js/browse.e03893c8e18381ce9581.js.map +static/js/browse.dd1b3cff11e141a4fbbc.js +static/js/browse.dd1b3cff11e141a4fbbc.js.LICENSE.txt +static/js/browse.dd1b3cff11e141a4fbbc.js.map static/js/d3.f989183a810fb9dbb086.js static/js/d3.f989183a810fb9dbb086.js.map static/js/guided_tour.6fdb762b8416936b3c84.js static/js/guided_tour.6fdb762b8416936b3c84.js.LICENSE.txt static/js/guided_tour.6fdb762b8416936b3c84.js.map static/js/highlightjs.5fd270288fca1f2de6c3.js static/js/highlightjs.5fd270288fca1f2de6c3.js.LICENSE.txt static/js/highlightjs.5fd270288fca1f2de6c3.js.map static/js/mathjax.a0046af7afe82fd10728.js static/js/mathjax.a0046af7afe82fd10728.js.map static/js/org.9adc9a39a210c2fb4be0.js static/js/org.9adc9a39a210c2fb4be0.js.map static/js/origin.278a63bfc40cb4173975.js static/js/origin.278a63bfc40cb4173975.js.map static/js/pdf.worker.min.js static/js/pdf.worker.min.js.LICENSE.txt static/js/pdfjs.7fa499e22fea56527058.js static/js/pdfjs.7fa499e22fea56527058.js.map static/js/revision.52cc3dd3b75a01c492af.js static/js/revision.52cc3dd3b75a01c492af.js.LICENSE.txt static/js/revision.52cc3dd3b75a01c492af.js.map static/js/save.9fc62242a6cdffdaad2c.js static/js/save.9fc62242a6cdffdaad2c.js.LICENSE.txt static/js/save.9fc62242a6cdffdaad2c.js.map static/js/showdown.b448e42a34c43d6a7de5.js static/js/showdown.b448e42a34c43d6a7de5.js.LICENSE.txt static/js/showdown.b448e42a34c43d6a7de5.js.map static/js/vault.e2e8f042b9c742390872.js static/js/vault.e2e8f042b9c742390872.js.LICENSE.txt static/js/vault.e2e8f042b9c742390872.js.map static/js/vendors.d43ce19d06b487934799.js static/js/vendors.d43ce19d06b487934799.js.LICENSE.txt static/js/vendors.d43ce19d06b487934799.js.map static/js/webapp.90df29dadbec1b5bf1f7.js static/js/webapp.90df29dadbec1b5bf1f7.js.LICENSE.txt static/js/webapp.90df29dadbec1b5bf1f7.js.map static/json/highlightjs-languages.json static/jssources/LICENSE.txt static/jssources/jslicenses.json static/jssources/@babel/runtime/LICENSE.txt static/jssources/@babel/runtime/helpers/esm/asyncToGenerator.js static/jssources/@babel/runtime/helpers/esm/inherits.js static/jssources/@babel/runtime/helpers/esm/setPrototypeOf.js static/jssources/@babel/runtime/regenerator/index.js static/jssources/@sentry/browser/LICENSE.txt static/jssources/@sentry/browser/esm/backend.js static/jssources/@sentry/browser/esm/client.js static/jssources/@sentry/browser/esm/eventbuilder.js static/jssources/@sentry/browser/esm/flags.js static/jssources/@sentry/browser/esm/helpers.js static/jssources/@sentry/browser/esm/sdk.js static/jssources/@sentry/browser/esm/stack-parsers.js static/jssources/@sentry/browser/esm/integrations/breadcrumbs.js static/jssources/@sentry/browser/esm/integrations/dedupe.js static/jssources/@sentry/browser/esm/integrations/globalhandlers.js static/jssources/@sentry/browser/esm/integrations/linkederrors.js static/jssources/@sentry/browser/esm/integrations/trycatch.js static/jssources/@sentry/browser/esm/integrations/useragent.js static/jssources/@sentry/browser/esm/transports/base.js static/jssources/@sentry/browser/esm/transports/fetch.js static/jssources/@sentry/browser/esm/transports/new-fetch.js static/jssources/@sentry/browser/esm/transports/new-xhr.js static/jssources/@sentry/browser/esm/transports/utils.js static/jssources/@sentry/browser/esm/transports/xhr.js static/jssources/@sentry/core/LICENSE.txt static/jssources/@sentry/core/esm/api.js static/jssources/@sentry/core/esm/basebackend.js static/jssources/@sentry/core/esm/baseclient.js static/jssources/@sentry/core/esm/flags.js static/jssources/@sentry/core/esm/integration.js static/jssources/@sentry/core/esm/request.js static/jssources/@sentry/core/esm/sdk.js static/jssources/@sentry/core/esm/version.js static/jssources/@sentry/core/esm/integrations/functiontostring.js static/jssources/@sentry/core/esm/integrations/inboundfilters.js static/jssources/@sentry/core/esm/transports/base.js static/jssources/@sentry/core/esm/transports/noop.js static/jssources/@sentry/hub/LICENSE.txt static/jssources/@sentry/hub/esm/flags.js static/jssources/@sentry/hub/esm/hub.js static/jssources/@sentry/hub/esm/scope.js static/jssources/@sentry/hub/esm/session.js static/jssources/@sentry/minimal/LICENSE.txt static/jssources/@sentry/minimal/esm/index.js static/jssources/@sentry/types/LICENSE.txt static/jssources/@sentry/types/esm/severity.js static/jssources/@sentry/utils/LICENSE.txt static/jssources/@sentry/utils/esm/async.js static/jssources/@sentry/utils/esm/browser.js static/jssources/@sentry/utils/esm/clientreport.js static/jssources/@sentry/utils/esm/dsn.js static/jssources/@sentry/utils/esm/enums.js static/jssources/@sentry/utils/esm/env.js static/jssources/@sentry/utils/esm/envelope.js static/jssources/@sentry/utils/esm/error.js static/jssources/@sentry/utils/esm/flags.js static/jssources/@sentry/utils/esm/global.js static/jssources/@sentry/utils/esm/instrument.js static/jssources/@sentry/utils/esm/is.js static/jssources/@sentry/utils/esm/logger.js static/jssources/@sentry/utils/esm/memo.js static/jssources/@sentry/utils/esm/misc.js static/jssources/@sentry/utils/esm/node.js static/jssources/@sentry/utils/esm/normalize.js static/jssources/@sentry/utils/esm/object.js static/jssources/@sentry/utils/esm/polyfill.js static/jssources/@sentry/utils/esm/promisebuffer.js static/jssources/@sentry/utils/esm/ratelimit.js static/jssources/@sentry/utils/esm/severity.js static/jssources/@sentry/utils/esm/stacktrace.js static/jssources/@sentry/utils/esm/status.js static/jssources/@sentry/utils/esm/string.js static/jssources/@sentry/utils/esm/supports.js static/jssources/@sentry/utils/esm/syncpromise.js static/jssources/@sentry/utils/esm/time.js static/jssources/admin-lte/LICENSE.txt static/jssources/admin-lte/dist/js/adminlte.js static/jssources/ansi_up/LICENSE.txt static/jssources/ansi_up/ansi_up.js static/jssources/assets/src/bundles/add_forge/add-request-history-item.ejs static/jssources/assets/src/bundles/add_forge/create-request.js static/jssources/assets/src/bundles/add_forge/forge-admin-email.ejs static/jssources/assets/src/bundles/add_forge/index.js static/jssources/assets/src/bundles/add_forge/moderation-dashboard.js static/jssources/assets/src/bundles/add_forge/request-dashboard.js static/jssources/assets/src/bundles/admin/deposit.js static/jssources/assets/src/bundles/admin/index.js static/jssources/assets/src/bundles/admin/mailmap-form.ejs static/jssources/assets/src/bundles/admin/mailmap.js static/jssources/assets/src/bundles/admin/origin-save.js static/jssources/assets/src/bundles/auth/index.js static/jssources/assets/src/bundles/browse/browse-utils.js static/jssources/assets/src/bundles/browse/index.js static/jssources/assets/src/bundles/browse/origin-search.js static/jssources/assets/src/bundles/browse/snapshot-navigation.js static/jssources/assets/src/bundles/browse/swhid-utils.js static/jssources/assets/src/bundles/guided_tour/index.js static/jssources/assets/src/bundles/origin/index.js static/jssources/assets/src/bundles/origin/utils.js static/jssources/assets/src/bundles/origin/visits-calendar.js static/jssources/assets/src/bundles/origin/visits-histogram.js static/jssources/assets/src/bundles/origin/visits-reporting.js static/jssources/assets/src/bundles/revision/diff-panel.ejs static/jssources/assets/src/bundles/revision/diff-utils.js static/jssources/assets/src/bundles/revision/index.js static/jssources/assets/src/bundles/revision/log-utils.js static/jssources/assets/src/bundles/save/artifact-form-row.ejs static/jssources/assets/src/bundles/save/index.js static/jssources/assets/src/bundles/vault/index.js static/jssources/assets/src/bundles/vault/vault-create-tasks.js static/jssources/assets/src/bundles/vault/vault-table-row.ejs static/jssources/assets/src/bundles/vault/vault-ui.js static/jssources/assets/src/bundles/vendors/elementsfrompoint-polyfill.js static/jssources/assets/src/bundles/vendors/index.js static/jssources/assets/src/bundles/webapp/badges.js static/jssources/assets/src/bundles/webapp/code-highlighting.js static/jssources/assets/src/bundles/webapp/history-counters.js static/jssources/assets/src/bundles/webapp/iframes.js static/jssources/assets/src/bundles/webapp/index.js static/jssources/assets/src/bundles/webapp/math-typesetting.js static/jssources/assets/src/bundles/webapp/notebook-rendering.js static/jssources/assets/src/bundles/webapp/pdf-rendering.js static/jssources/assets/src/bundles/webapp/readme-rendering.js static/jssources/assets/src/bundles/webapp/sentry.js static/jssources/assets/src/bundles/webapp/status-widget.js static/jssources/assets/src/bundles/webapp/webapp-utils.js static/jssources/assets/src/bundles/webapp/xss-filtering.js static/jssources/assets/src/thirdparty/jquery.tabSlideOut/LICENSE.txt static/jssources/assets/src/thirdparty/jquery.tabSlideOut/jquery.tabSlideOut.js static/jssources/assets/src/utils/constants.js static/jssources/assets/src/utils/d3.js static/jssources/assets/src/utils/functions.js static/jssources/assets/src/utils/highlightjs.js static/jssources/assets/src/utils/mathjax.js static/jssources/assets/src/utils/org.js static/jssources/assets/src/utils/requests-filter-checkbox.ejs static/jssources/assets/src/utils/scrolling.js static/jssources/assets/src/utils/showdown.js static/jssources/bootstrap/LICENSE.txt static/jssources/bootstrap/js/dist/alert.js static/jssources/bootstrap/js/dist/button.js static/jssources/bootstrap/js/dist/carousel.js static/jssources/bootstrap/js/dist/collapse.js static/jssources/bootstrap/js/dist/dropdown.js static/jssources/bootstrap/js/dist/modal.js static/jssources/bootstrap/js/dist/popover.js static/jssources/bootstrap/js/dist/scrollspy.js static/jssources/bootstrap/js/dist/tab.js static/jssources/bootstrap/js/dist/tooltip.js static/jssources/bootstrap/js/dist/util.js static/jssources/chosen-js/LICENSE.md static/jssources/chosen-js/chosen.jquery.js static/jssources/clipboard/LICENSE.txt static/jssources/clipboard/dist/clipboard.js static/jssources/core-js/LICENSE.txt static/jssources/core-js/internals/a-callable.js static/jssources/core-js/internals/a-constructor.js static/jssources/core-js/internals/a-possible-prototype.js static/jssources/core-js/internals/add-to-unscopables.js static/jssources/core-js/internals/advance-string-index.js static/jssources/core-js/internals/an-instance.js static/jssources/core-js/internals/an-object.js static/jssources/core-js/internals/array-buffer-native.js static/jssources/core-js/internals/array-buffer-non-extensible.js static/jssources/core-js/internals/array-buffer-view-core.js static/jssources/core-js/internals/array-buffer.js static/jssources/core-js/internals/array-copy-within.js static/jssources/core-js/internals/array-fill.js static/jssources/core-js/internals/array-for-each.js static/jssources/core-js/internals/array-from-constructor-and-list.js static/jssources/core-js/internals/array-from.js static/jssources/core-js/internals/array-includes.js static/jssources/core-js/internals/array-iteration.js static/jssources/core-js/internals/array-last-index-of.js static/jssources/core-js/internals/array-method-has-species-support.js static/jssources/core-js/internals/array-method-is-strict.js static/jssources/core-js/internals/array-reduce.js static/jssources/core-js/internals/array-slice-simple.js static/jssources/core-js/internals/array-slice.js static/jssources/core-js/internals/array-sort.js static/jssources/core-js/internals/array-species-constructor.js static/jssources/core-js/internals/array-species-create.js static/jssources/core-js/internals/base64-map.js static/jssources/core-js/internals/call-with-safe-iteration-closing.js static/jssources/core-js/internals/check-correctness-of-iteration.js static/jssources/core-js/internals/classof-raw.js static/jssources/core-js/internals/classof.js static/jssources/core-js/internals/clear-error-stack.js static/jssources/core-js/internals/collection-strong.js static/jssources/core-js/internals/collection-weak.js static/jssources/core-js/internals/collection.js static/jssources/core-js/internals/copy-constructor-properties.js static/jssources/core-js/internals/correct-is-regexp-logic.js static/jssources/core-js/internals/correct-prototype-getter.js static/jssources/core-js/internals/create-html.js static/jssources/core-js/internals/create-iterator-constructor.js static/jssources/core-js/internals/create-non-enumerable-property.js static/jssources/core-js/internals/create-property-descriptor.js static/jssources/core-js/internals/create-property.js static/jssources/core-js/internals/date-to-iso-string.js static/jssources/core-js/internals/date-to-primitive.js static/jssources/core-js/internals/define-built-in-accessor.js static/jssources/core-js/internals/define-built-in.js static/jssources/core-js/internals/define-built-ins.js static/jssources/core-js/internals/define-iterator.js static/jssources/core-js/internals/define-well-known-symbol.js static/jssources/core-js/internals/descriptors.js static/jssources/core-js/internals/document-create-element.js static/jssources/core-js/internals/dom-exception-constants.js static/jssources/core-js/internals/dom-iterables.js static/jssources/core-js/internals/dom-token-list-prototype.js static/jssources/core-js/internals/engine-ff-version.js static/jssources/core-js/internals/engine-is-browser.js static/jssources/core-js/internals/engine-is-ie-or-edge.js static/jssources/core-js/internals/engine-is-ios-pebble.js static/jssources/core-js/internals/engine-is-ios.js static/jssources/core-js/internals/engine-is-node.js static/jssources/core-js/internals/engine-is-webos-webkit.js static/jssources/core-js/internals/engine-user-agent.js static/jssources/core-js/internals/engine-v8-version.js static/jssources/core-js/internals/engine-webkit-version.js static/jssources/core-js/internals/enum-bug-keys.js static/jssources/core-js/internals/error-stack-installable.js static/jssources/core-js/internals/error-to-string.js static/jssources/core-js/internals/export.js static/jssources/core-js/internals/fails.js static/jssources/core-js/internals/fix-regexp-well-known-symbol-logic.js static/jssources/core-js/internals/flatten-into-array.js static/jssources/core-js/internals/freezing.js static/jssources/core-js/internals/function-apply.js static/jssources/core-js/internals/function-bind-context.js static/jssources/core-js/internals/function-bind-native.js static/jssources/core-js/internals/function-bind.js static/jssources/core-js/internals/function-call.js static/jssources/core-js/internals/function-name.js static/jssources/core-js/internals/function-uncurry-this.js static/jssources/core-js/internals/get-built-in.js static/jssources/core-js/internals/get-iterator-method.js static/jssources/core-js/internals/get-iterator.js static/jssources/core-js/internals/get-method.js static/jssources/core-js/internals/get-substitution.js static/jssources/core-js/internals/global.js static/jssources/core-js/internals/has-own-property.js static/jssources/core-js/internals/hidden-keys.js static/jssources/core-js/internals/host-report-errors.js static/jssources/core-js/internals/html.js static/jssources/core-js/internals/ie8-dom-define.js static/jssources/core-js/internals/ieee754.js static/jssources/core-js/internals/indexed-object.js static/jssources/core-js/internals/inherit-if-required.js static/jssources/core-js/internals/inspect-source.js static/jssources/core-js/internals/install-error-cause.js static/jssources/core-js/internals/internal-metadata.js static/jssources/core-js/internals/internal-state.js static/jssources/core-js/internals/is-array-iterator-method.js static/jssources/core-js/internals/is-array.js static/jssources/core-js/internals/is-callable.js static/jssources/core-js/internals/is-constructor.js static/jssources/core-js/internals/is-data-descriptor.js static/jssources/core-js/internals/is-forced.js static/jssources/core-js/internals/is-integral-number.js static/jssources/core-js/internals/is-object.js static/jssources/core-js/internals/is-pure.js static/jssources/core-js/internals/is-regexp.js static/jssources/core-js/internals/is-symbol.js static/jssources/core-js/internals/iterate.js static/jssources/core-js/internals/iterator-close.js static/jssources/core-js/internals/iterators-core.js static/jssources/core-js/internals/iterators.js static/jssources/core-js/internals/length-of-array-like.js static/jssources/core-js/internals/make-built-in.js static/jssources/core-js/internals/math-expm1.js static/jssources/core-js/internals/math-fround.js static/jssources/core-js/internals/math-log10.js static/jssources/core-js/internals/math-log1p.js static/jssources/core-js/internals/math-sign.js static/jssources/core-js/internals/microtask.js static/jssources/core-js/internals/native-symbol-registry.js static/jssources/core-js/internals/native-symbol.js static/jssources/core-js/internals/native-url.js static/jssources/core-js/internals/native-weak-map.js static/jssources/core-js/internals/new-promise-capability.js static/jssources/core-js/internals/normalize-string-argument.js static/jssources/core-js/internals/not-a-regexp.js static/jssources/core-js/internals/number-is-finite.js static/jssources/core-js/internals/number-parse-float.js static/jssources/core-js/internals/number-parse-int.js static/jssources/core-js/internals/object-assign.js static/jssources/core-js/internals/object-create.js static/jssources/core-js/internals/object-define-properties.js static/jssources/core-js/internals/object-define-property.js static/jssources/core-js/internals/object-get-own-property-descriptor.js static/jssources/core-js/internals/object-get-own-property-names-external.js static/jssources/core-js/internals/object-get-own-property-names.js static/jssources/core-js/internals/object-get-own-property-symbols.js static/jssources/core-js/internals/object-get-prototype-of.js static/jssources/core-js/internals/object-is-extensible.js static/jssources/core-js/internals/object-is-prototype-of.js static/jssources/core-js/internals/object-keys-internal.js static/jssources/core-js/internals/object-keys.js static/jssources/core-js/internals/object-property-is-enumerable.js static/jssources/core-js/internals/object-prototype-accessors-forced.js static/jssources/core-js/internals/object-set-prototype-of.js static/jssources/core-js/internals/object-to-array.js static/jssources/core-js/internals/object-to-string.js static/jssources/core-js/internals/ordinary-to-primitive.js static/jssources/core-js/internals/own-keys.js static/jssources/core-js/internals/path.js static/jssources/core-js/internals/perform.js static/jssources/core-js/internals/promise-constructor-detection.js static/jssources/core-js/internals/promise-native-constructor.js static/jssources/core-js/internals/promise-resolve.js static/jssources/core-js/internals/promise-statics-incorrect-iteration.js static/jssources/core-js/internals/proxy-accessor.js static/jssources/core-js/internals/queue.js static/jssources/core-js/internals/regexp-exec-abstract.js static/jssources/core-js/internals/regexp-exec.js static/jssources/core-js/internals/regexp-flags.js static/jssources/core-js/internals/regexp-get-flags.js static/jssources/core-js/internals/regexp-sticky-helpers.js static/jssources/core-js/internals/regexp-unsupported-dot-all.js static/jssources/core-js/internals/regexp-unsupported-ncg.js static/jssources/core-js/internals/require-object-coercible.js static/jssources/core-js/internals/same-value.js static/jssources/core-js/internals/schedulers-fix.js static/jssources/core-js/internals/set-global.js static/jssources/core-js/internals/set-species.js static/jssources/core-js/internals/set-to-string-tag.js static/jssources/core-js/internals/shared-key.js static/jssources/core-js/internals/shared-store.js static/jssources/core-js/internals/shared.js static/jssources/core-js/internals/species-constructor.js static/jssources/core-js/internals/string-html-forced.js static/jssources/core-js/internals/string-multibyte.js static/jssources/core-js/internals/string-pad-webkit-bug.js static/jssources/core-js/internals/string-pad.js static/jssources/core-js/internals/string-punycode-to-ascii.js static/jssources/core-js/internals/string-repeat.js static/jssources/core-js/internals/string-trim-end.js static/jssources/core-js/internals/string-trim-forced.js static/jssources/core-js/internals/string-trim-start.js static/jssources/core-js/internals/string-trim.js static/jssources/core-js/internals/symbol-define-to-primitive.js static/jssources/core-js/internals/task.js static/jssources/core-js/internals/this-number-value.js static/jssources/core-js/internals/to-absolute-index.js static/jssources/core-js/internals/to-index.js static/jssources/core-js/internals/to-indexed-object.js static/jssources/core-js/internals/to-integer-or-infinity.js static/jssources/core-js/internals/to-length.js static/jssources/core-js/internals/to-object.js static/jssources/core-js/internals/to-offset.js static/jssources/core-js/internals/to-positive-integer.js static/jssources/core-js/internals/to-primitive.js static/jssources/core-js/internals/to-property-key.js static/jssources/core-js/internals/to-string-tag-support.js static/jssources/core-js/internals/to-string.js static/jssources/core-js/internals/try-node-require.js static/jssources/core-js/internals/try-to-string.js static/jssources/core-js/internals/typed-array-constructor.js static/jssources/core-js/internals/typed-array-constructors-require-wrappers.js static/jssources/core-js/internals/typed-array-from-species-and-list.js static/jssources/core-js/internals/typed-array-from.js static/jssources/core-js/internals/typed-array-species-constructor.js static/jssources/core-js/internals/uid.js static/jssources/core-js/internals/use-symbol-as-uid.js static/jssources/core-js/internals/v8-prototype-define-bug.js static/jssources/core-js/internals/validate-arguments-length.js static/jssources/core-js/internals/well-known-symbol-wrapped.js static/jssources/core-js/internals/well-known-symbol.js static/jssources/core-js/internals/whitespaces.js static/jssources/core-js/internals/wrap-error-constructor-with-cause.js static/jssources/core-js/modules/es.aggregate-error.cause.js static/jssources/core-js/modules/es.aggregate-error.constructor.js static/jssources/core-js/modules/es.aggregate-error.js static/jssources/core-js/modules/es.array-buffer.constructor.js static/jssources/core-js/modules/es.array-buffer.is-view.js static/jssources/core-js/modules/es.array-buffer.slice.js static/jssources/core-js/modules/es.array.at.js static/jssources/core-js/modules/es.array.concat.js static/jssources/core-js/modules/es.array.copy-within.js static/jssources/core-js/modules/es.array.every.js static/jssources/core-js/modules/es.array.fill.js static/jssources/core-js/modules/es.array.filter.js static/jssources/core-js/modules/es.array.find-index.js static/jssources/core-js/modules/es.array.find.js static/jssources/core-js/modules/es.array.flat-map.js static/jssources/core-js/modules/es.array.flat.js static/jssources/core-js/modules/es.array.for-each.js static/jssources/core-js/modules/es.array.from.js static/jssources/core-js/modules/es.array.includes.js static/jssources/core-js/modules/es.array.index-of.js static/jssources/core-js/modules/es.array.is-array.js static/jssources/core-js/modules/es.array.iterator.js static/jssources/core-js/modules/es.array.join.js static/jssources/core-js/modules/es.array.last-index-of.js static/jssources/core-js/modules/es.array.map.js static/jssources/core-js/modules/es.array.of.js static/jssources/core-js/modules/es.array.reduce-right.js static/jssources/core-js/modules/es.array.reduce.js static/jssources/core-js/modules/es.array.reverse.js static/jssources/core-js/modules/es.array.slice.js static/jssources/core-js/modules/es.array.some.js static/jssources/core-js/modules/es.array.sort.js static/jssources/core-js/modules/es.array.species.js static/jssources/core-js/modules/es.array.splice.js static/jssources/core-js/modules/es.array.unscopables.flat-map.js static/jssources/core-js/modules/es.array.unscopables.flat.js static/jssources/core-js/modules/es.data-view.constructor.js static/jssources/core-js/modules/es.data-view.js static/jssources/core-js/modules/es.date.get-year.js static/jssources/core-js/modules/es.date.now.js static/jssources/core-js/modules/es.date.set-year.js static/jssources/core-js/modules/es.date.to-gmt-string.js static/jssources/core-js/modules/es.date.to-iso-string.js static/jssources/core-js/modules/es.date.to-json.js static/jssources/core-js/modules/es.date.to-primitive.js static/jssources/core-js/modules/es.date.to-string.js static/jssources/core-js/modules/es.error.cause.js static/jssources/core-js/modules/es.error.to-string.js static/jssources/core-js/modules/es.escape.js static/jssources/core-js/modules/es.function.bind.js static/jssources/core-js/modules/es.function.has-instance.js static/jssources/core-js/modules/es.function.name.js static/jssources/core-js/modules/es.global-this.js static/jssources/core-js/modules/es.json.stringify.js static/jssources/core-js/modules/es.json.to-string-tag.js static/jssources/core-js/modules/es.map.constructor.js static/jssources/core-js/modules/es.map.js static/jssources/core-js/modules/es.math.acosh.js static/jssources/core-js/modules/es.math.asinh.js static/jssources/core-js/modules/es.math.atanh.js static/jssources/core-js/modules/es.math.cbrt.js static/jssources/core-js/modules/es.math.clz32.js static/jssources/core-js/modules/es.math.cosh.js static/jssources/core-js/modules/es.math.expm1.js static/jssources/core-js/modules/es.math.fround.js static/jssources/core-js/modules/es.math.hypot.js static/jssources/core-js/modules/es.math.imul.js static/jssources/core-js/modules/es.math.log10.js static/jssources/core-js/modules/es.math.log1p.js static/jssources/core-js/modules/es.math.log2.js static/jssources/core-js/modules/es.math.sign.js static/jssources/core-js/modules/es.math.sinh.js static/jssources/core-js/modules/es.math.tanh.js static/jssources/core-js/modules/es.math.to-string-tag.js static/jssources/core-js/modules/es.math.trunc.js static/jssources/core-js/modules/es.number.constructor.js static/jssources/core-js/modules/es.number.epsilon.js static/jssources/core-js/modules/es.number.is-finite.js static/jssources/core-js/modules/es.number.is-integer.js static/jssources/core-js/modules/es.number.is-nan.js static/jssources/core-js/modules/es.number.is-safe-integer.js static/jssources/core-js/modules/es.number.max-safe-integer.js static/jssources/core-js/modules/es.number.min-safe-integer.js static/jssources/core-js/modules/es.number.parse-float.js static/jssources/core-js/modules/es.number.parse-int.js static/jssources/core-js/modules/es.number.to-exponential.js static/jssources/core-js/modules/es.number.to-fixed.js static/jssources/core-js/modules/es.number.to-precision.js static/jssources/core-js/modules/es.object.assign.js static/jssources/core-js/modules/es.object.create.js static/jssources/core-js/modules/es.object.define-getter.js static/jssources/core-js/modules/es.object.define-properties.js static/jssources/core-js/modules/es.object.define-property.js static/jssources/core-js/modules/es.object.define-setter.js static/jssources/core-js/modules/es.object.entries.js static/jssources/core-js/modules/es.object.freeze.js static/jssources/core-js/modules/es.object.from-entries.js static/jssources/core-js/modules/es.object.get-own-property-descriptor.js static/jssources/core-js/modules/es.object.get-own-property-descriptors.js static/jssources/core-js/modules/es.object.get-own-property-names.js static/jssources/core-js/modules/es.object.get-own-property-symbols.js static/jssources/core-js/modules/es.object.get-prototype-of.js static/jssources/core-js/modules/es.object.has-own.js static/jssources/core-js/modules/es.object.is-extensible.js static/jssources/core-js/modules/es.object.is-frozen.js static/jssources/core-js/modules/es.object.is-sealed.js static/jssources/core-js/modules/es.object.is.js static/jssources/core-js/modules/es.object.keys.js static/jssources/core-js/modules/es.object.lookup-getter.js static/jssources/core-js/modules/es.object.lookup-setter.js static/jssources/core-js/modules/es.object.prevent-extensions.js static/jssources/core-js/modules/es.object.seal.js static/jssources/core-js/modules/es.object.set-prototype-of.js static/jssources/core-js/modules/es.object.to-string.js static/jssources/core-js/modules/es.object.values.js static/jssources/core-js/modules/es.parse-float.js static/jssources/core-js/modules/es.parse-int.js static/jssources/core-js/modules/es.promise.all-settled.js static/jssources/core-js/modules/es.promise.all.js static/jssources/core-js/modules/es.promise.any.js static/jssources/core-js/modules/es.promise.catch.js static/jssources/core-js/modules/es.promise.constructor.js static/jssources/core-js/modules/es.promise.finally.js static/jssources/core-js/modules/es.promise.js static/jssources/core-js/modules/es.promise.race.js static/jssources/core-js/modules/es.promise.reject.js static/jssources/core-js/modules/es.promise.resolve.js static/jssources/core-js/modules/es.reflect.apply.js static/jssources/core-js/modules/es.reflect.construct.js static/jssources/core-js/modules/es.reflect.define-property.js static/jssources/core-js/modules/es.reflect.delete-property.js static/jssources/core-js/modules/es.reflect.get-own-property-descriptor.js static/jssources/core-js/modules/es.reflect.get-prototype-of.js static/jssources/core-js/modules/es.reflect.get.js static/jssources/core-js/modules/es.reflect.has.js static/jssources/core-js/modules/es.reflect.is-extensible.js static/jssources/core-js/modules/es.reflect.own-keys.js static/jssources/core-js/modules/es.reflect.prevent-extensions.js static/jssources/core-js/modules/es.reflect.set-prototype-of.js static/jssources/core-js/modules/es.reflect.set.js static/jssources/core-js/modules/es.reflect.to-string-tag.js static/jssources/core-js/modules/es.regexp.constructor.js static/jssources/core-js/modules/es.regexp.dot-all.js static/jssources/core-js/modules/es.regexp.exec.js static/jssources/core-js/modules/es.regexp.flags.js static/jssources/core-js/modules/es.regexp.sticky.js static/jssources/core-js/modules/es.regexp.test.js static/jssources/core-js/modules/es.regexp.to-string.js static/jssources/core-js/modules/es.set.constructor.js static/jssources/core-js/modules/es.set.js static/jssources/core-js/modules/es.string.anchor.js static/jssources/core-js/modules/es.string.at-alternative.js static/jssources/core-js/modules/es.string.big.js static/jssources/core-js/modules/es.string.blink.js static/jssources/core-js/modules/es.string.bold.js static/jssources/core-js/modules/es.string.code-point-at.js static/jssources/core-js/modules/es.string.ends-with.js static/jssources/core-js/modules/es.string.fixed.js static/jssources/core-js/modules/es.string.fontcolor.js static/jssources/core-js/modules/es.string.fontsize.js static/jssources/core-js/modules/es.string.from-code-point.js static/jssources/core-js/modules/es.string.includes.js static/jssources/core-js/modules/es.string.italics.js static/jssources/core-js/modules/es.string.iterator.js static/jssources/core-js/modules/es.string.link.js static/jssources/core-js/modules/es.string.match-all.js static/jssources/core-js/modules/es.string.match.js static/jssources/core-js/modules/es.string.pad-end.js static/jssources/core-js/modules/es.string.pad-start.js static/jssources/core-js/modules/es.string.raw.js static/jssources/core-js/modules/es.string.repeat.js static/jssources/core-js/modules/es.string.replace-all.js static/jssources/core-js/modules/es.string.replace.js static/jssources/core-js/modules/es.string.search.js static/jssources/core-js/modules/es.string.small.js static/jssources/core-js/modules/es.string.split.js static/jssources/core-js/modules/es.string.starts-with.js static/jssources/core-js/modules/es.string.strike.js static/jssources/core-js/modules/es.string.sub.js static/jssources/core-js/modules/es.string.substr.js static/jssources/core-js/modules/es.string.sup.js static/jssources/core-js/modules/es.string.trim-end.js static/jssources/core-js/modules/es.string.trim-left.js static/jssources/core-js/modules/es.string.trim-right.js static/jssources/core-js/modules/es.string.trim-start.js static/jssources/core-js/modules/es.string.trim.js static/jssources/core-js/modules/es.symbol.async-iterator.js static/jssources/core-js/modules/es.symbol.constructor.js static/jssources/core-js/modules/es.symbol.description.js static/jssources/core-js/modules/es.symbol.for.js static/jssources/core-js/modules/es.symbol.has-instance.js static/jssources/core-js/modules/es.symbol.is-concat-spreadable.js static/jssources/core-js/modules/es.symbol.iterator.js static/jssources/core-js/modules/es.symbol.js static/jssources/core-js/modules/es.symbol.key-for.js static/jssources/core-js/modules/es.symbol.match-all.js static/jssources/core-js/modules/es.symbol.match.js static/jssources/core-js/modules/es.symbol.replace.js static/jssources/core-js/modules/es.symbol.search.js static/jssources/core-js/modules/es.symbol.species.js static/jssources/core-js/modules/es.symbol.split.js static/jssources/core-js/modules/es.symbol.to-primitive.js static/jssources/core-js/modules/es.symbol.to-string-tag.js static/jssources/core-js/modules/es.symbol.unscopables.js static/jssources/core-js/modules/es.typed-array.at.js static/jssources/core-js/modules/es.typed-array.copy-within.js static/jssources/core-js/modules/es.typed-array.every.js static/jssources/core-js/modules/es.typed-array.fill.js static/jssources/core-js/modules/es.typed-array.filter.js static/jssources/core-js/modules/es.typed-array.find-index.js static/jssources/core-js/modules/es.typed-array.find.js static/jssources/core-js/modules/es.typed-array.float32-array.js static/jssources/core-js/modules/es.typed-array.float64-array.js static/jssources/core-js/modules/es.typed-array.for-each.js static/jssources/core-js/modules/es.typed-array.from.js static/jssources/core-js/modules/es.typed-array.includes.js static/jssources/core-js/modules/es.typed-array.index-of.js static/jssources/core-js/modules/es.typed-array.int16-array.js static/jssources/core-js/modules/es.typed-array.int32-array.js static/jssources/core-js/modules/es.typed-array.int8-array.js static/jssources/core-js/modules/es.typed-array.iterator.js static/jssources/core-js/modules/es.typed-array.join.js static/jssources/core-js/modules/es.typed-array.last-index-of.js static/jssources/core-js/modules/es.typed-array.map.js static/jssources/core-js/modules/es.typed-array.of.js static/jssources/core-js/modules/es.typed-array.reduce-right.js static/jssources/core-js/modules/es.typed-array.reduce.js static/jssources/core-js/modules/es.typed-array.reverse.js static/jssources/core-js/modules/es.typed-array.set.js static/jssources/core-js/modules/es.typed-array.slice.js static/jssources/core-js/modules/es.typed-array.some.js static/jssources/core-js/modules/es.typed-array.sort.js static/jssources/core-js/modules/es.typed-array.subarray.js static/jssources/core-js/modules/es.typed-array.to-locale-string.js static/jssources/core-js/modules/es.typed-array.to-string.js static/jssources/core-js/modules/es.typed-array.uint16-array.js static/jssources/core-js/modules/es.typed-array.uint32-array.js static/jssources/core-js/modules/es.typed-array.uint8-array.js static/jssources/core-js/modules/es.typed-array.uint8-clamped-array.js static/jssources/core-js/modules/es.unescape.js static/jssources/core-js/modules/es.weak-map.constructor.js static/jssources/core-js/modules/es.weak-map.js static/jssources/core-js/modules/es.weak-set.constructor.js static/jssources/core-js/modules/es.weak-set.js static/jssources/core-js/modules/web.atob.js static/jssources/core-js/modules/web.btoa.js static/jssources/core-js/modules/web.clear-immediate.js static/jssources/core-js/modules/web.dom-collections.for-each.js static/jssources/core-js/modules/web.dom-collections.iterator.js static/jssources/core-js/modules/web.dom-exception.constructor.js static/jssources/core-js/modules/web.dom-exception.stack.js static/jssources/core-js/modules/web.dom-exception.to-string-tag.js static/jssources/core-js/modules/web.immediate.js static/jssources/core-js/modules/web.queue-microtask.js static/jssources/core-js/modules/web.set-immediate.js static/jssources/core-js/modules/web.set-interval.js static/jssources/core-js/modules/web.set-timeout.js static/jssources/core-js/modules/web.structured-clone.js static/jssources/core-js/modules/web.timers.js static/jssources/core-js/modules/web.url-search-params.constructor.js static/jssources/core-js/modules/web.url-search-params.js static/jssources/core-js/modules/web.url.constructor.js static/jssources/core-js/modules/web.url.js static/jssources/core-js/modules/web.url.to-json.js static/jssources/core-js/stable/index.js static/jssources/d3-array/LICENSE.txt static/jssources/d3-array/src/array.js static/jssources/d3-array/src/ascending.js static/jssources/d3-array/src/bin.js static/jssources/d3-array/src/bisect.js static/jssources/d3-array/src/bisector.js static/jssources/d3-array/src/constant.js static/jssources/d3-array/src/count.js static/jssources/d3-array/src/cross.js static/jssources/d3-array/src/cumsum.js static/jssources/d3-array/src/descending.js static/jssources/d3-array/src/deviation.js static/jssources/d3-array/src/difference.js static/jssources/d3-array/src/disjoint.js static/jssources/d3-array/src/every.js static/jssources/d3-array/src/extent.js static/jssources/d3-array/src/filter.js static/jssources/d3-array/src/fsum.js static/jssources/d3-array/src/greatest.js static/jssources/d3-array/src/greatestIndex.js static/jssources/d3-array/src/group.js static/jssources/d3-array/src/groupSort.js static/jssources/d3-array/src/identity.js static/jssources/d3-array/src/index.js static/jssources/d3-array/src/intersection.js static/jssources/d3-array/src/least.js static/jssources/d3-array/src/leastIndex.js static/jssources/d3-array/src/map.js static/jssources/d3-array/src/max.js static/jssources/d3-array/src/maxIndex.js static/jssources/d3-array/src/mean.js static/jssources/d3-array/src/median.js static/jssources/d3-array/src/merge.js static/jssources/d3-array/src/min.js static/jssources/d3-array/src/minIndex.js static/jssources/d3-array/src/mode.js static/jssources/d3-array/src/nice.js static/jssources/d3-array/src/number.js static/jssources/d3-array/src/pairs.js static/jssources/d3-array/src/permute.js static/jssources/d3-array/src/quantile.js static/jssources/d3-array/src/quickselect.js static/jssources/d3-array/src/range.js static/jssources/d3-array/src/reduce.js static/jssources/d3-array/src/reverse.js static/jssources/d3-array/src/scan.js static/jssources/d3-array/src/set.js static/jssources/d3-array/src/shuffle.js static/jssources/d3-array/src/some.js static/jssources/d3-array/src/sort.js static/jssources/d3-array/src/subset.js static/jssources/d3-array/src/sum.js static/jssources/d3-array/src/superset.js static/jssources/d3-array/src/ticks.js static/jssources/d3-array/src/transpose.js static/jssources/d3-array/src/union.js static/jssources/d3-array/src/variance.js static/jssources/d3-array/src/zip.js static/jssources/d3-array/src/threshold/freedmanDiaconis.js static/jssources/d3-array/src/threshold/scott.js static/jssources/d3-array/src/threshold/sturges.js static/jssources/d3-axis/LICENSE.txt static/jssources/d3-axis/src/axis.js static/jssources/d3-axis/src/identity.js static/jssources/d3-axis/src/index.js static/jssources/d3-color/LICENSE.txt static/jssources/d3-color/src/color.js static/jssources/d3-color/src/define.js static/jssources/d3-dispatch/LICENSE.txt static/jssources/d3-dispatch/src/dispatch.js static/jssources/d3-ease/LICENSE.txt static/jssources/d3-ease/src/cubic.js static/jssources/d3-format/LICENSE.txt static/jssources/d3-format/src/defaultLocale.js static/jssources/d3-format/src/exponent.js static/jssources/d3-format/src/formatDecimal.js static/jssources/d3-format/src/formatGroup.js static/jssources/d3-format/src/formatNumerals.js static/jssources/d3-format/src/formatPrefixAuto.js static/jssources/d3-format/src/formatRounded.js static/jssources/d3-format/src/formatSpecifier.js static/jssources/d3-format/src/formatTrim.js static/jssources/d3-format/src/formatTypes.js static/jssources/d3-format/src/identity.js static/jssources/d3-format/src/index.js static/jssources/d3-format/src/locale.js static/jssources/d3-format/src/precisionFixed.js static/jssources/d3-format/src/precisionPrefix.js static/jssources/d3-format/src/precisionRound.js static/jssources/d3-interpolate/LICENSE.txt static/jssources/d3-interpolate/src/array.js static/jssources/d3-interpolate/src/basis.js static/jssources/d3-interpolate/src/basisClosed.js static/jssources/d3-interpolate/src/color.js static/jssources/d3-interpolate/src/constant.js static/jssources/d3-interpolate/src/date.js static/jssources/d3-interpolate/src/number.js static/jssources/d3-interpolate/src/numberArray.js static/jssources/d3-interpolate/src/object.js static/jssources/d3-interpolate/src/piecewise.js static/jssources/d3-interpolate/src/rgb.js static/jssources/d3-interpolate/src/round.js static/jssources/d3-interpolate/src/string.js static/jssources/d3-interpolate/src/value.js static/jssources/d3-interpolate/src/transform/decompose.js static/jssources/d3-interpolate/src/transform/index.js static/jssources/d3-interpolate/src/transform/parse.js static/jssources/d3-path/LICENSE.txt static/jssources/d3-path/src/path.js static/jssources/d3-scale/LICENSE.txt static/jssources/d3-scale/src/band.js static/jssources/d3-scale/src/constant.js static/jssources/d3-scale/src/continuous.js static/jssources/d3-scale/src/diverging.js static/jssources/d3-scale/src/identity.js static/jssources/d3-scale/src/index.js static/jssources/d3-scale/src/init.js static/jssources/d3-scale/src/linear.js static/jssources/d3-scale/src/log.js static/jssources/d3-scale/src/nice.js static/jssources/d3-scale/src/number.js static/jssources/d3-scale/src/ordinal.js static/jssources/d3-scale/src/pow.js static/jssources/d3-scale/src/quantile.js static/jssources/d3-scale/src/quantize.js static/jssources/d3-scale/src/radial.js static/jssources/d3-scale/src/sequential.js static/jssources/d3-scale/src/sequentialQuantile.js static/jssources/d3-scale/src/symlog.js static/jssources/d3-scale/src/threshold.js static/jssources/d3-scale/src/tickFormat.js static/jssources/d3-scale/src/time.js static/jssources/d3-scale/src/utcTime.js static/jssources/d3-selection/LICENSE.txt static/jssources/d3-selection/src/array.js static/jssources/d3-selection/src/constant.js static/jssources/d3-selection/src/create.js static/jssources/d3-selection/src/creator.js static/jssources/d3-selection/src/index.js static/jssources/d3-selection/src/local.js static/jssources/d3-selection/src/matcher.js static/jssources/d3-selection/src/namespace.js static/jssources/d3-selection/src/namespaces.js static/jssources/d3-selection/src/pointer.js static/jssources/d3-selection/src/pointers.js static/jssources/d3-selection/src/select.js static/jssources/d3-selection/src/selectAll.js static/jssources/d3-selection/src/selector.js static/jssources/d3-selection/src/selectorAll.js static/jssources/d3-selection/src/sourceEvent.js static/jssources/d3-selection/src/window.js static/jssources/d3-selection/src/selection/append.js static/jssources/d3-selection/src/selection/attr.js static/jssources/d3-selection/src/selection/call.js static/jssources/d3-selection/src/selection/classed.js static/jssources/d3-selection/src/selection/clone.js static/jssources/d3-selection/src/selection/data.js static/jssources/d3-selection/src/selection/datum.js static/jssources/d3-selection/src/selection/dispatch.js static/jssources/d3-selection/src/selection/each.js static/jssources/d3-selection/src/selection/empty.js static/jssources/d3-selection/src/selection/enter.js static/jssources/d3-selection/src/selection/exit.js static/jssources/d3-selection/src/selection/filter.js static/jssources/d3-selection/src/selection/html.js static/jssources/d3-selection/src/selection/index.js static/jssources/d3-selection/src/selection/insert.js static/jssources/d3-selection/src/selection/iterator.js static/jssources/d3-selection/src/selection/join.js static/jssources/d3-selection/src/selection/lower.js static/jssources/d3-selection/src/selection/merge.js static/jssources/d3-selection/src/selection/node.js static/jssources/d3-selection/src/selection/nodes.js static/jssources/d3-selection/src/selection/on.js static/jssources/d3-selection/src/selection/order.js static/jssources/d3-selection/src/selection/property.js static/jssources/d3-selection/src/selection/raise.js static/jssources/d3-selection/src/selection/remove.js static/jssources/d3-selection/src/selection/select.js static/jssources/d3-selection/src/selection/selectAll.js static/jssources/d3-selection/src/selection/selectChild.js static/jssources/d3-selection/src/selection/selectChildren.js static/jssources/d3-selection/src/selection/size.js static/jssources/d3-selection/src/selection/sort.js static/jssources/d3-selection/src/selection/sparse.js static/jssources/d3-selection/src/selection/style.js static/jssources/d3-selection/src/selection/text.js static/jssources/d3-shape/LICENSE.txt static/jssources/d3-shape/src/arc.js static/jssources/d3-shape/src/area.js static/jssources/d3-shape/src/areaRadial.js static/jssources/d3-shape/src/array.js static/jssources/d3-shape/src/constant.js static/jssources/d3-shape/src/descending.js static/jssources/d3-shape/src/identity.js static/jssources/d3-shape/src/index.js static/jssources/d3-shape/src/line.js static/jssources/d3-shape/src/lineRadial.js static/jssources/d3-shape/src/math.js static/jssources/d3-shape/src/noop.js static/jssources/d3-shape/src/pie.js static/jssources/d3-shape/src/point.js static/jssources/d3-shape/src/pointRadial.js static/jssources/d3-shape/src/stack.js static/jssources/d3-shape/src/symbol.js static/jssources/d3-shape/src/curve/basis.js static/jssources/d3-shape/src/curve/basisClosed.js static/jssources/d3-shape/src/curve/basisOpen.js static/jssources/d3-shape/src/curve/bump.js static/jssources/d3-shape/src/curve/bundle.js static/jssources/d3-shape/src/curve/cardinal.js static/jssources/d3-shape/src/curve/cardinalClosed.js static/jssources/d3-shape/src/curve/cardinalOpen.js static/jssources/d3-shape/src/curve/catmullRom.js static/jssources/d3-shape/src/curve/catmullRomClosed.js static/jssources/d3-shape/src/curve/catmullRomOpen.js static/jssources/d3-shape/src/curve/linear.js static/jssources/d3-shape/src/curve/linearClosed.js static/jssources/d3-shape/src/curve/monotone.js static/jssources/d3-shape/src/curve/natural.js static/jssources/d3-shape/src/curve/radial.js static/jssources/d3-shape/src/curve/step.js static/jssources/d3-shape/src/link/index.js static/jssources/d3-shape/src/offset/diverging.js static/jssources/d3-shape/src/offset/expand.js static/jssources/d3-shape/src/offset/none.js static/jssources/d3-shape/src/offset/silhouette.js static/jssources/d3-shape/src/offset/wiggle.js static/jssources/d3-shape/src/order/appearance.js static/jssources/d3-shape/src/order/ascending.js static/jssources/d3-shape/src/order/descending.js static/jssources/d3-shape/src/order/insideOut.js static/jssources/d3-shape/src/order/none.js static/jssources/d3-shape/src/order/reverse.js static/jssources/d3-shape/src/symbol/circle.js static/jssources/d3-shape/src/symbol/cross.js static/jssources/d3-shape/src/symbol/diamond.js static/jssources/d3-shape/src/symbol/square.js static/jssources/d3-shape/src/symbol/star.js static/jssources/d3-shape/src/symbol/triangle.js static/jssources/d3-shape/src/symbol/wye.js static/jssources/d3-time/LICENSE.txt static/jssources/d3-time-format/LICENSE.txt static/jssources/d3-time-format/src/defaultLocale.js static/jssources/d3-time-format/src/index.js static/jssources/d3-time-format/src/isoFormat.js static/jssources/d3-time-format/src/isoParse.js static/jssources/d3-time-format/src/locale.js static/jssources/d3-time/src/day.js static/jssources/d3-time/src/duration.js static/jssources/d3-time/src/hour.js static/jssources/d3-time/src/index.js static/jssources/d3-time/src/interval.js static/jssources/d3-time/src/millisecond.js static/jssources/d3-time/src/minute.js static/jssources/d3-time/src/month.js static/jssources/d3-time/src/second.js static/jssources/d3-time/src/ticks.js static/jssources/d3-time/src/utcDay.js static/jssources/d3-time/src/utcHour.js static/jssources/d3-time/src/utcMinute.js static/jssources/d3-time/src/utcMonth.js static/jssources/d3-time/src/utcWeek.js static/jssources/d3-time/src/utcYear.js static/jssources/d3-time/src/week.js static/jssources/d3-time/src/year.js static/jssources/d3-timer/LICENSE.txt static/jssources/d3-timer/src/timeout.js static/jssources/d3-timer/src/timer.js static/jssources/d3-transition/LICENSE.txt static/jssources/d3-transition/src/active.js static/jssources/d3-transition/src/index.js static/jssources/d3-transition/src/interrupt.js static/jssources/d3-transition/src/selection/index.js static/jssources/d3-transition/src/selection/interrupt.js static/jssources/d3-transition/src/selection/transition.js static/jssources/d3-transition/src/transition/attr.js static/jssources/d3-transition/src/transition/attrTween.js static/jssources/d3-transition/src/transition/delay.js static/jssources/d3-transition/src/transition/duration.js static/jssources/d3-transition/src/transition/ease.js static/jssources/d3-transition/src/transition/easeVarying.js static/jssources/d3-transition/src/transition/end.js static/jssources/d3-transition/src/transition/filter.js static/jssources/d3-transition/src/transition/index.js static/jssources/d3-transition/src/transition/interpolate.js static/jssources/d3-transition/src/transition/merge.js static/jssources/d3-transition/src/transition/on.js static/jssources/d3-transition/src/transition/remove.js static/jssources/d3-transition/src/transition/schedule.js static/jssources/d3-transition/src/transition/select.js static/jssources/d3-transition/src/transition/selectAll.js static/jssources/d3-transition/src/transition/selection.js static/jssources/d3-transition/src/transition/style.js static/jssources/d3-transition/src/transition/styleTween.js static/jssources/d3-transition/src/transition/text.js static/jssources/d3-transition/src/transition/textTween.js static/jssources/d3-transition/src/transition/transition.js static/jssources/d3-transition/src/transition/tween.js static/jssources/datatables.net/License.txt static/jssources/datatables.net-bs4/License.txt static/jssources/datatables.net-bs4/js/dataTables.bootstrap4.js static/jssources/datatables.net/js/jquery.dataTables.js static/jssources/dompurify/LICENSE.txt static/jssources/dompurify/dist/purify.js static/jssources/email-validator/LICENSE.txt static/jssources/email-validator/index.js static/jssources/expose-loader/LICENSE.txt static/jssources/expose-loader/dist/runtime/getGlobalThis.js static/jssources/he/LICENSE-MIT.txt.txt static/jssources/he/he.js static/jssources/hex-rgb/index.js static/jssources/hex-rgb/license.txt static/jssources/highlight.js/LICENSE.txt static/jssources/highlight.js/es/index.js static/jssources/highlight.js/lib/core.js static/jssources/highlight.js/lib/index.js static/jssources/highlight.js/lib/languages/1c.js static/jssources/highlight.js/lib/languages/abnf.js static/jssources/highlight.js/lib/languages/accesslog.js static/jssources/highlight.js/lib/languages/actionscript.js static/jssources/highlight.js/lib/languages/ada.js static/jssources/highlight.js/lib/languages/angelscript.js static/jssources/highlight.js/lib/languages/apache.js static/jssources/highlight.js/lib/languages/applescript.js static/jssources/highlight.js/lib/languages/arcade.js static/jssources/highlight.js/lib/languages/arduino.js static/jssources/highlight.js/lib/languages/armasm.js static/jssources/highlight.js/lib/languages/asciidoc.js static/jssources/highlight.js/lib/languages/aspectj.js static/jssources/highlight.js/lib/languages/autohotkey.js static/jssources/highlight.js/lib/languages/autoit.js static/jssources/highlight.js/lib/languages/avrasm.js static/jssources/highlight.js/lib/languages/awk.js static/jssources/highlight.js/lib/languages/axapta.js static/jssources/highlight.js/lib/languages/bash.js static/jssources/highlight.js/lib/languages/basic.js static/jssources/highlight.js/lib/languages/bnf.js static/jssources/highlight.js/lib/languages/brainfuck.js static/jssources/highlight.js/lib/languages/c.js static/jssources/highlight.js/lib/languages/cal.js static/jssources/highlight.js/lib/languages/capnproto.js static/jssources/highlight.js/lib/languages/ceylon.js static/jssources/highlight.js/lib/languages/clean.js static/jssources/highlight.js/lib/languages/clojure-repl.js static/jssources/highlight.js/lib/languages/clojure.js static/jssources/highlight.js/lib/languages/cmake.js static/jssources/highlight.js/lib/languages/coffeescript.js static/jssources/highlight.js/lib/languages/coq.js static/jssources/highlight.js/lib/languages/cos.js static/jssources/highlight.js/lib/languages/cpp.js static/jssources/highlight.js/lib/languages/crmsh.js static/jssources/highlight.js/lib/languages/crystal.js static/jssources/highlight.js/lib/languages/csharp.js static/jssources/highlight.js/lib/languages/csp.js static/jssources/highlight.js/lib/languages/css.js static/jssources/highlight.js/lib/languages/d.js static/jssources/highlight.js/lib/languages/dart.js static/jssources/highlight.js/lib/languages/delphi.js static/jssources/highlight.js/lib/languages/diff.js static/jssources/highlight.js/lib/languages/django.js static/jssources/highlight.js/lib/languages/dns.js static/jssources/highlight.js/lib/languages/dockerfile.js static/jssources/highlight.js/lib/languages/dos.js static/jssources/highlight.js/lib/languages/dsconfig.js static/jssources/highlight.js/lib/languages/dts.js static/jssources/highlight.js/lib/languages/dust.js static/jssources/highlight.js/lib/languages/ebnf.js static/jssources/highlight.js/lib/languages/elixir.js static/jssources/highlight.js/lib/languages/elm.js static/jssources/highlight.js/lib/languages/erb.js static/jssources/highlight.js/lib/languages/erlang-repl.js static/jssources/highlight.js/lib/languages/erlang.js static/jssources/highlight.js/lib/languages/excel.js static/jssources/highlight.js/lib/languages/fix.js static/jssources/highlight.js/lib/languages/flix.js static/jssources/highlight.js/lib/languages/fortran.js static/jssources/highlight.js/lib/languages/fsharp.js static/jssources/highlight.js/lib/languages/gams.js static/jssources/highlight.js/lib/languages/gauss.js static/jssources/highlight.js/lib/languages/gcode.js static/jssources/highlight.js/lib/languages/gherkin.js static/jssources/highlight.js/lib/languages/glsl.js static/jssources/highlight.js/lib/languages/gml.js static/jssources/highlight.js/lib/languages/go.js static/jssources/highlight.js/lib/languages/golo.js static/jssources/highlight.js/lib/languages/gradle.js static/jssources/highlight.js/lib/languages/graphql.js static/jssources/highlight.js/lib/languages/groovy.js static/jssources/highlight.js/lib/languages/haml.js static/jssources/highlight.js/lib/languages/handlebars.js static/jssources/highlight.js/lib/languages/haskell.js static/jssources/highlight.js/lib/languages/haxe.js static/jssources/highlight.js/lib/languages/hsp.js static/jssources/highlight.js/lib/languages/http.js static/jssources/highlight.js/lib/languages/hy.js static/jssources/highlight.js/lib/languages/inform7.js static/jssources/highlight.js/lib/languages/ini.js static/jssources/highlight.js/lib/languages/irpf90.js static/jssources/highlight.js/lib/languages/isbl.js static/jssources/highlight.js/lib/languages/java.js static/jssources/highlight.js/lib/languages/javascript.js static/jssources/highlight.js/lib/languages/jboss-cli.js static/jssources/highlight.js/lib/languages/json.js static/jssources/highlight.js/lib/languages/julia-repl.js static/jssources/highlight.js/lib/languages/julia.js static/jssources/highlight.js/lib/languages/kotlin.js static/jssources/highlight.js/lib/languages/lasso.js static/jssources/highlight.js/lib/languages/latex.js static/jssources/highlight.js/lib/languages/ldif.js static/jssources/highlight.js/lib/languages/leaf.js static/jssources/highlight.js/lib/languages/less.js static/jssources/highlight.js/lib/languages/lisp.js static/jssources/highlight.js/lib/languages/livecodeserver.js static/jssources/highlight.js/lib/languages/livescript.js static/jssources/highlight.js/lib/languages/llvm.js static/jssources/highlight.js/lib/languages/lsl.js static/jssources/highlight.js/lib/languages/lua.js static/jssources/highlight.js/lib/languages/makefile.js static/jssources/highlight.js/lib/languages/markdown.js static/jssources/highlight.js/lib/languages/mathematica.js static/jssources/highlight.js/lib/languages/matlab.js static/jssources/highlight.js/lib/languages/maxima.js static/jssources/highlight.js/lib/languages/mel.js static/jssources/highlight.js/lib/languages/mercury.js static/jssources/highlight.js/lib/languages/mipsasm.js static/jssources/highlight.js/lib/languages/mizar.js static/jssources/highlight.js/lib/languages/mojolicious.js static/jssources/highlight.js/lib/languages/monkey.js static/jssources/highlight.js/lib/languages/moonscript.js static/jssources/highlight.js/lib/languages/n1ql.js static/jssources/highlight.js/lib/languages/nestedtext.js static/jssources/highlight.js/lib/languages/nginx.js static/jssources/highlight.js/lib/languages/nim.js static/jssources/highlight.js/lib/languages/nix.js static/jssources/highlight.js/lib/languages/node-repl.js static/jssources/highlight.js/lib/languages/nsis.js static/jssources/highlight.js/lib/languages/objectivec.js static/jssources/highlight.js/lib/languages/ocaml.js static/jssources/highlight.js/lib/languages/openscad.js static/jssources/highlight.js/lib/languages/oxygene.js static/jssources/highlight.js/lib/languages/parser3.js static/jssources/highlight.js/lib/languages/perl.js static/jssources/highlight.js/lib/languages/pf.js static/jssources/highlight.js/lib/languages/pgsql.js static/jssources/highlight.js/lib/languages/php-template.js static/jssources/highlight.js/lib/languages/php.js static/jssources/highlight.js/lib/languages/plaintext.js static/jssources/highlight.js/lib/languages/pony.js static/jssources/highlight.js/lib/languages/powershell.js static/jssources/highlight.js/lib/languages/processing.js static/jssources/highlight.js/lib/languages/profile.js static/jssources/highlight.js/lib/languages/prolog.js static/jssources/highlight.js/lib/languages/properties.js static/jssources/highlight.js/lib/languages/protobuf.js static/jssources/highlight.js/lib/languages/puppet.js static/jssources/highlight.js/lib/languages/purebasic.js static/jssources/highlight.js/lib/languages/python-repl.js static/jssources/highlight.js/lib/languages/python.js static/jssources/highlight.js/lib/languages/q.js static/jssources/highlight.js/lib/languages/qml.js static/jssources/highlight.js/lib/languages/r.js static/jssources/highlight.js/lib/languages/reasonml.js static/jssources/highlight.js/lib/languages/rib.js static/jssources/highlight.js/lib/languages/roboconf.js static/jssources/highlight.js/lib/languages/routeros.js static/jssources/highlight.js/lib/languages/rsl.js static/jssources/highlight.js/lib/languages/ruby.js static/jssources/highlight.js/lib/languages/ruleslanguage.js static/jssources/highlight.js/lib/languages/rust.js static/jssources/highlight.js/lib/languages/sas.js static/jssources/highlight.js/lib/languages/scala.js static/jssources/highlight.js/lib/languages/scheme.js static/jssources/highlight.js/lib/languages/scilab.js static/jssources/highlight.js/lib/languages/scss.js static/jssources/highlight.js/lib/languages/shell.js static/jssources/highlight.js/lib/languages/smali.js static/jssources/highlight.js/lib/languages/smalltalk.js static/jssources/highlight.js/lib/languages/sml.js static/jssources/highlight.js/lib/languages/sqf.js static/jssources/highlight.js/lib/languages/sql.js static/jssources/highlight.js/lib/languages/stan.js static/jssources/highlight.js/lib/languages/stata.js static/jssources/highlight.js/lib/languages/step21.js static/jssources/highlight.js/lib/languages/stylus.js static/jssources/highlight.js/lib/languages/subunit.js static/jssources/highlight.js/lib/languages/swift.js static/jssources/highlight.js/lib/languages/taggerscript.js static/jssources/highlight.js/lib/languages/tap.js static/jssources/highlight.js/lib/languages/tcl.js static/jssources/highlight.js/lib/languages/thrift.js static/jssources/highlight.js/lib/languages/tp.js static/jssources/highlight.js/lib/languages/twig.js static/jssources/highlight.js/lib/languages/typescript.js static/jssources/highlight.js/lib/languages/vala.js static/jssources/highlight.js/lib/languages/vbnet.js static/jssources/highlight.js/lib/languages/vbscript-html.js static/jssources/highlight.js/lib/languages/vbscript.js static/jssources/highlight.js/lib/languages/verilog.js static/jssources/highlight.js/lib/languages/vhdl.js static/jssources/highlight.js/lib/languages/vim.js static/jssources/highlight.js/lib/languages/wasm.js static/jssources/highlight.js/lib/languages/wren.js static/jssources/highlight.js/lib/languages/x86asm.js static/jssources/highlight.js/lib/languages/xl.js static/jssources/highlight.js/lib/languages/xml.js static/jssources/highlight.js/lib/languages/xquery.js static/jssources/highlight.js/lib/languages/yaml.js static/jssources/highlight.js/lib/languages/zephir.js static/jssources/highlightjs-4d/LICENSE.txt static/jssources/highlightjs-4d/dist/4d.min.js static/jssources/highlightjs-alan/LICENSE.txt static/jssources/highlightjs-alan/dist/alan.min.js static/jssources/highlightjs-blade/LICENSE.txt static/jssources/highlightjs-blade/dist/blade.min.js static/jssources/highlightjs-chaos/LICENSE.txt static/jssources/highlightjs-chaos/dist/chaos.min.js static/jssources/highlightjs-chapel/LICENSE.txt static/jssources/highlightjs-chapel/dist/chapel.min.js static/jssources/highlightjs-cpcdos/LICENSE.txt static/jssources/highlightjs-cpcdos/dist/cpc-highlight.min.js static/jssources/highlightjs-cshtml-razor/LICENSE.txt static/jssources/highlightjs-cshtml-razor/dist/cshtml-razor.min.js static/jssources/highlightjs-cypher/LICENSE.txt static/jssources/highlightjs-cypher/dist/cypher.min.js static/jssources/highlightjs-dafny/LICENSE.txt static/jssources/highlightjs-dafny/dist/dafny.min.js static/jssources/highlightjs-dylan/LICENSE.txt static/jssources/highlightjs-dylan/dist/dylan.min.js static/jssources/highlightjs-eta/dist/eta.min.js static/jssources/highlightjs-extempore/LICENSE.txt static/jssources/highlightjs-extempore/dist/extempore.min.js static/jssources/highlightjs-gdscript/LICENSE.txt static/jssources/highlightjs-gdscript/dist/gdscript.min.js static/jssources/highlightjs-gf/LICENSE.txt static/jssources/highlightjs-gf/dist/gf.min.js static/jssources/highlightjs-gsql/dist/gsql.min.js static/jssources/highlightjs-hlsl/LICENSE.txt static/jssources/highlightjs-hlsl/dist/hlsl.min.js static/jssources/highlightjs-jolie/LICENSE.txt static/jssources/highlightjs-jolie/dist/jolie.min.js static/jssources/highlightjs-lean/LICENSE.txt static/jssources/highlightjs-lean/src/lean.js static/jssources/highlightjs-line-numbers.js/LICENSE.txt static/jssources/highlightjs-line-numbers.js/src/highlightjs-line-numbers.js static/jssources/highlightjs-lox/LICENSE.md static/jssources/highlightjs-lox/dist/es/lox.mjs static/jssources/highlightjs-mirc/LICENSE.txt static/jssources/highlightjs-mirc/mirc.js static/jssources/highlightjs-modelica/LICENSE.txt static/jssources/highlightjs-modelica/modelica.js static/jssources/highlightjs-never/LICENSE.txt static/jssources/highlightjs-never/dist/never.min.js static/jssources/highlightjs-octave/LICENSE.txt static/jssources/highlightjs-octave/dist/highlightjs-octave.cjs.js static/jssources/highlightjs-oz/LICENSE.txt static/jssources/highlightjs-oz/dist/oz.min.js static/jssources/highlightjs-qsharp/dist/qsharp.min.js static/jssources/highlightjs-redbol/LICENSE.txt static/jssources/highlightjs-redbol/dist/redbol.min.js static/jssources/highlightjs-robot/LICENSE.txt static/jssources/highlightjs-robot/robot.js static/jssources/highlightjs-robots-txt/LICENSE.txt static/jssources/highlightjs-robots-txt/dist/robots-txt.min.js static/jssources/highlightjs-rpm-specfile/LICENSE.txt static/jssources/highlightjs-rpm-specfile/rpm-specfile.js static/jssources/highlightjs-sap-abap/LICENSE.txt static/jssources/highlightjs-sap-abap/dist/abap.min.js static/jssources/highlightjs-solidity/LICENSE.txt static/jssources/highlightjs-solidity/dist/solidity.min.js static/jssources/highlightjs-svelte/LICENSE.txt static/jssources/highlightjs-svelte/dist/svelte.min.js static/jssources/highlightjs-terraform/LICENSE.txt static/jssources/highlightjs-terraform/terraform.js static/jssources/highlightjs-xsharp/LICENSE.txt static/jssources/highlightjs-xsharp/dist/xsharp.min.js static/jssources/highlightjs-zenscript/LICENSE.txt static/jssources/highlightjs-zenscript/dist/zenscript.min.js static/jssources/highlightjs-zig/LICENSE.txt static/jssources/highlightjs-zig/dist/zig.min.js static/jssources/hightlightjs-papyrus/LICENSE.txt static/jssources/hightlightjs-papyrus/dist/papyrus.min.js static/jssources/html-encoder-decoder/LICENSE.txt static/jssources/html-encoder-decoder/lib/index.js static/jssources/iframe-resizer/LICENSE.txt static/jssources/iframe-resizer/index.js static/jssources/iframe-resizer/js/iframeResizer.contentWindow.js static/jssources/iframe-resizer/js/iframeResizer.js static/jssources/iframe-resizer/js/index.js static/jssources/internmap/LICENSE.txt static/jssources/internmap/src/index.js static/jssources/intro.js/intro.module.js static/jssources/intro.js/license.md static/jssources/iterate-object/LICENSE.txt static/jssources/iterate-object/lib/index.js static/jssources/jquery/LICENSE.txt static/jssources/jquery/dist/jquery.js static/jssources/js-cookie/LICENSE.txt static/jssources/js-cookie/dist/js.cookie.mjs static/jssources/js-year-calendar/LICENSE.txt static/jssources/js-year-calendar/dist/js-year-calendar.js static/jssources/mathjax/LICENSE.txt static/jssources/mathjax/es5/tex-mml-chtml.js static/jssources/notebookjs/LICENSE.txt static/jssources/notebookjs/notebook.js static/jssources/object-fit-images/license.txt static/jssources/object-fit-images/dist/ofi.common-js.js static/jssources/org/LICENSE.txt static/jssources/org/lib/org.js static/jssources/org/lib/org/lexer.js static/jssources/org/lib/org/node.js static/jssources/org/lib/org/parser.js static/jssources/org/lib/org/stream.js static/jssources/org/lib/org/converter/converter.js static/jssources/org/lib/org/converter/html.js static/jssources/pdfjs-dist/LICENSE.txt static/jssources/pdfjs-dist/build/pdf.js static/jssources/pdfjs-dist/build/pdf.worker.js static/jssources/popper.js/dist/esm/popper.js static/jssources/regenerator-runtime/LICENSE.txt static/jssources/regenerator-runtime/runtime.js static/jssources/regex-escape/LICENSE.txt static/jssources/regex-escape/lib/index.js static/jssources/script-loader/LICENSE.txt static/jssources/script-loader/addScript.js static/jssources/showdown/LICENSE.txt static/jssources/showdown/dist/showdown.js static/jssources/tslib/LICENSE.txt static/jssources/tslib/tslib.es6.js static/jssources/waypoints/licenses.txt.txt static/jssources/waypoints/lib/jquery.waypoints.js static/jssources/whatwg-fetch/LICENSE.txt static/jssources/whatwg-fetch/dist/fetch.umd.js static/xml/swh-opensearch.xml swh/__init__.py swh.web.egg-info/PKG-INFO swh.web.egg-info/SOURCES.txt swh.web.egg-info/dependency_links.txt swh.web.egg-info/requires.txt swh.web.egg-info/top_level.txt swh/web/__init__.py swh/web/config.py swh/web/gunicorn_config.py swh/web/manage.py swh/web/py.typed swh/web/urls.py swh/web/add_forge_now/__init__.py swh/web/add_forge_now/apps.py swh/web/add_forge_now/models.py swh/web/add_forge_now/views.py swh/web/add_forge_now/migrations/0001_initial.py swh/web/add_forge_now/migrations/0002_authorized_null_comment.py swh/web/add_forge_now/migrations/0003_request_submitter_forward_username.py swh/web/add_forge_now/migrations/0004_rename_tables.py swh/web/add_forge_now/migrations/__init__.py swh/web/admin/__init__.py swh/web/admin/add_forge_now.py swh/web/admin/adminurls.py swh/web/admin/deposit.py swh/web/admin/mailmap.py swh/web/admin/origin_save.py swh/web/admin/urls.py swh/web/api/__init__.py swh/web/api/apidoc.py swh/web/api/apiresponse.py swh/web/api/apiurls.py swh/web/api/renderers.py swh/web/api/throttling.py swh/web/api/urls.py swh/web/api/utils.py swh/web/api/views/__init__.py swh/web/api/views/add_forge_now.py swh/web/api/views/content.py swh/web/api/views/directory.py swh/web/api/views/graph.py swh/web/api/views/identifiers.py swh/web/api/views/metadata.py swh/web/api/views/origin.py swh/web/api/views/origin_save.py swh/web/api/views/ping.py swh/web/api/views/raw.py swh/web/api/views/release.py swh/web/api/views/revision.py swh/web/api/views/snapshot.py swh/web/api/views/stat.py swh/web/api/views/utils.py swh/web/api/views/vault.py swh/web/auth/__init__.py swh/web/auth/apps.py swh/web/auth/mailmap.py swh/web/auth/models.py swh/web/auth/utils.py swh/web/auth/views.py swh/web/auth/management/__init__.py swh/web/auth/management/commands/__init__.py swh/web/auth/management/commands/sync_mailmaps.py swh/web/auth/migrations/0001_initial.py swh/web/auth/migrations/0002_remove_stored_tokens.py swh/web/auth/migrations/0003_delete_oidcuser.py swh/web/auth/migrations/0004_usermailmap.py swh/web/auth/migrations/0005_usermailmapevent.py swh/web/auth/migrations/0006_fix_mailmap_admin_user_id.py swh/web/auth/migrations/__init__.py swh/web/browse/__init__.py swh/web/browse/browseurls.py swh/web/browse/identifiers.py swh/web/browse/snapshot_context.py swh/web/browse/urls.py swh/web/browse/utils.py swh/web/browse/views/__init__.py swh/web/browse/views/content.py swh/web/browse/views/directory.py swh/web/browse/views/origin.py swh/web/browse/views/release.py swh/web/browse/views/revision.py swh/web/browse/views/snapshot.py swh/web/common/__init__.py swh/web/common/apps.py swh/web/common/archive.py swh/web/common/converters.py swh/web/common/exc.py swh/web/common/highlightjs.py swh/web/common/identifiers.py swh/web/common/middlewares.py swh/web/common/models.py swh/web/common/origin_save.py swh/web/common/origin_visits.py swh/web/common/query.py swh/web/common/swh_templatetags.py swh/web/common/typing.py swh/web/common/urlsindex.py swh/web/common/utils.py swh/web/common/management/__init__.py swh/web/common/management/commands/__init__.py swh/web/common/management/commands/refresh_savecodenow_statuses.py swh/web/common/migrations/0001_initial.py swh/web/common/migrations/0002_saveoriginrequest_visit_date.py swh/web/common/migrations/0003_saveoriginrequest_loading_task_status.py swh/web/common/migrations/0004_auto_20190204_1324.py swh/web/common/migrations/0005_remove_duplicated_authorized_origins.py swh/web/common/migrations/0006_rename_origin_type.py swh/web/common/migrations/0007_save_request_task_status_fix_typo.py swh/web/common/migrations/0008_save-code-now_indexes_20210106_1327.py swh/web/common/migrations/0009_saveoriginrequest_visit_status.py swh/web/common/migrations/0010_saveoriginrequest_user_id.py swh/web/common/migrations/0011_saveoriginrequest_user_ids.py swh/web/common/migrations/0012_saveoriginrequest_note.py swh/web/common/migrations/__init__.py swh/web/inbound_email/__init__.py swh/web/inbound_email/apps.py swh/web/inbound_email/signals.py swh/web/inbound_email/utils.py swh/web/inbound_email/management/__init__.py swh/web/inbound_email/management/commands/__init__.py swh/web/inbound_email/management/commands/process_inbound_email.py swh/web/misc/__init__.py swh/web/misc/badges.py swh/web/misc/coverage.py swh/web/misc/fundraising.py swh/web/misc/iframe.py swh/web/misc/metrics.py swh/web/misc/origin_save.py swh/web/misc/urls.py swh/web/settings/__init__.py swh/web/settings/common.py swh/web/settings/development.py swh/web/settings/production.py swh/web/settings/tests.py swh/web/templates/error.html swh/web/templates/homepage.html swh/web/templates/layout.html swh/web/templates/login.html swh/web/templates/logout.html swh/web/templates/add_forge_now/common.html swh/web/templates/add_forge_now/creation_form.html swh/web/templates/add_forge_now/help.html swh/web/templates/add_forge_now/list.html swh/web/templates/add_forge_now/request-dashboard.html swh/web/templates/add_forge_now/requests-moderation.html swh/web/templates/admin/deposit.html swh/web/templates/admin/mailmap.html swh/web/templates/admin/origin-save/common.html swh/web/templates/admin/origin-save/filters.html swh/web/templates/admin/origin-save/requests.html swh/web/templates/api/api.html swh/web/templates/api/apidoc.html swh/web/templates/api/endpoints.html swh/web/templates/auth/profile.html swh/web/templates/browse/branches.html swh/web/templates/browse/browse.html swh/web/templates/browse/content.html swh/web/templates/browse/directory.html swh/web/templates/browse/help.html swh/web/templates/browse/layout.html swh/web/templates/browse/origin-visits.html swh/web/templates/browse/release.html swh/web/templates/browse/releases.html swh/web/templates/browse/revision-log.html swh/web/templates/browse/revision.html swh/web/templates/browse/search.html swh/web/templates/browse/vault-ui.html swh/web/templates/includes/branch-search.html swh/web/templates/includes/breadcrumbs.html swh/web/templates/includes/content-display.html swh/web/templates/includes/directory-display.html swh/web/templates/includes/empty-snapshot.html swh/web/templates/includes/global-modals.html swh/web/templates/includes/http-error.html swh/web/templates/includes/origin-search-form.html swh/web/templates/includes/readme-display.html swh/web/templates/includes/revision-info.html swh/web/templates/includes/show-metadata.html swh/web/templates/includes/show-swhids.html swh/web/templates/includes/snapshot-context.html swh/web/templates/includes/take-new-snapshot.html swh/web/templates/includes/top-navigation.html swh/web/templates/includes/vault-common.html swh/web/templates/includes/vault-create-tasks.html swh/web/templates/misc/coverage.html swh/web/templates/misc/fundraising-banner.html swh/web/templates/misc/iframe.html swh/web/templates/misc/jslicenses.html swh/web/templates/misc/origin-save-help.html swh/web/templates/misc/origin-save-list.html swh/web/templates/misc/origin-save.html swh/web/tests/__init__.py swh/web/tests/conftest.py swh/web/tests/create_test_admin.py swh/web/tests/create_test_users.py swh/web/tests/data.py swh/web/tests/django_asserts.py swh/web/tests/random_fixtures_test.py swh/web/tests/strategies.py swh/web/tests/test_config.py swh/web/tests/test_create_users.py swh/web/tests/test_gunicorn_config.py swh/web/tests/test_migrations.py swh/web/tests/test_random_fixtures.py swh/web/tests/test_templates.py swh/web/tests/test_urls.py swh/web/tests/utils.py swh/web/tests/views.py swh/web/tests/add_forge_now/test_migration.py swh/web/tests/add_forge_now/test_models.py swh/web/tests/add_forge_now/test_views.py swh/web/tests/admin/__init__.py swh/web/tests/admin/test_deposit.py swh/web/tests/admin/test_origin_save.py swh/web/tests/api/__init__.py swh/web/tests/api/test_api_lookup.py swh/web/tests/api/test_apidoc.py swh/web/tests/api/test_apiresponse.py swh/web/tests/api/test_apiurls.py swh/web/tests/api/test_throttling.py swh/web/tests/api/test_utils.py swh/web/tests/api/views/__init__.py swh/web/tests/api/views/test_add_forge_now.py swh/web/tests/api/views/test_content.py swh/web/tests/api/views/test_directory.py swh/web/tests/api/views/test_graph.py swh/web/tests/api/views/test_identifiers.py swh/web/tests/api/views/test_metadata.py swh/web/tests/api/views/test_origin.py swh/web/tests/api/views/test_origin_save.py swh/web/tests/api/views/test_ping.py swh/web/tests/api/views/test_raw.py swh/web/tests/api/views/test_release.py swh/web/tests/api/views/test_revision.py swh/web/tests/api/views/test_snapshot.py swh/web/tests/api/views/test_stat.py swh/web/tests/api/views/test_vault.py swh/web/tests/api/views/utils.py swh/web/tests/auth/__init__.py swh/web/tests/auth/test_mailmap.py swh/web/tests/auth/test_migrations.py swh/web/tests/auth/test_utils.py swh/web/tests/auth/test_views.py swh/web/tests/browse/__init__.py swh/web/tests/browse/test_snapshot_context.py swh/web/tests/browse/test_utils.py swh/web/tests/browse/views/__init__.py swh/web/tests/browse/views/test_content.py swh/web/tests/browse/views/test_directory.py swh/web/tests/browse/views/test_identifiers.py swh/web/tests/browse/views/test_origin.py swh/web/tests/browse/views/test_release.py swh/web/tests/browse/views/test_revision.py swh/web/tests/browse/views/test_snapshot.py swh/web/tests/common/__init__.py swh/web/tests/common/test_archive.py swh/web/tests/common/test_converters.py swh/web/tests/common/test_django_command.py swh/web/tests/common/test_highlightjs.py swh/web/tests/common/test_identifiers.py swh/web/tests/common/test_middlewares.py swh/web/tests/common/test_origin_save.py swh/web/tests/common/test_origin_visits.py swh/web/tests/common/test_query.py swh/web/tests/common/test_templatetags.py swh/web/tests/common/test_utils.py swh/web/tests/inbound_email/__init__.py swh/web/tests/inbound_email/test_management_command.py swh/web/tests/inbound_email/test_utils.py swh/web/tests/inbound_email/resources/__init__.py swh/web/tests/inbound_email/resources/multipart_alternative.eml swh/web/tests/inbound_email/resources/multipart_alternative_html_only.eml swh/web/tests/inbound_email/resources/multipart_alternative_recursive.eml swh/web/tests/inbound_email/resources/multipart_alternative_text_only.eml swh/web/tests/inbound_email/resources/multipart_mixed.eml swh/web/tests/inbound_email/resources/multipart_mixed2.eml swh/web/tests/inbound_email/resources/multipart_mixed_text_only.eml swh/web/tests/inbound_email/resources/multipart_related.eml swh/web/tests/inbound_email/resources/plaintext.eml swh/web/tests/misc/__init__.py swh/web/tests/misc/test_badges.py swh/web/tests/misc/test_coverage.py swh/web/tests/misc/test_fundraising.py swh/web/tests/misc/test_iframe.py swh/web/tests/misc/test_metrics.py swh/web/tests/misc/test_origin_save.py swh/web/tests/resources/contents/code/LICENSE swh/web/tests/resources/contents/code/extensions/test.R swh/web/tests/resources/contents/code/extensions/test.abnf swh/web/tests/resources/contents/code/extensions/test.adb swh/web/tests/resources/contents/code/extensions/test.adoc swh/web/tests/resources/contents/code/extensions/test.ahk swh/web/tests/resources/contents/code/extensions/test.aj swh/web/tests/resources/contents/code/extensions/test.applescript swh/web/tests/resources/contents/code/extensions/test.as swh/web/tests/resources/contents/code/extensions/test.au3 swh/web/tests/resources/contents/code/extensions/test.awk swh/web/tests/resources/contents/code/extensions/test.bas swh/web/tests/resources/contents/code/extensions/test.bat swh/web/tests/resources/contents/code/extensions/test.bf swh/web/tests/resources/contents/code/extensions/test.bnf swh/web/tests/resources/contents/code/extensions/test.bsl swh/web/tests/resources/contents/code/extensions/test.cal swh/web/tests/resources/contents/code/extensions/test.capnp swh/web/tests/resources/contents/code/extensions/test.ceylon swh/web/tests/resources/contents/code/extensions/test.clj swh/web/tests/resources/contents/code/extensions/test.cls swh/web/tests/resources/contents/code/extensions/test.cmake swh/web/tests/resources/contents/code/extensions/test.coffee swh/web/tests/resources/contents/code/extensions/test.cpp swh/web/tests/resources/contents/code/extensions/test.cr swh/web/tests/resources/contents/code/extensions/test.cs swh/web/tests/resources/contents/code/extensions/test.css swh/web/tests/resources/contents/code/extensions/test.d swh/web/tests/resources/contents/code/extensions/test.dart swh/web/tests/resources/contents/code/extensions/test.dcl swh/web/tests/resources/contents/code/extensions/test.dfm swh/web/tests/resources/contents/code/extensions/test.diff swh/web/tests/resources/contents/code/extensions/test.do swh/web/tests/resources/contents/code/extensions/test.dts swh/web/tests/resources/contents/code/extensions/test.dust swh/web/tests/resources/contents/code/extensions/test.ebnf swh/web/tests/resources/contents/code/extensions/test.elm swh/web/tests/resources/contents/code/extensions/test.ep swh/web/tests/resources/contents/code/extensions/test.erb swh/web/tests/resources/contents/code/extensions/test.erl swh/web/tests/resources/contents/code/extensions/test.ex swh/web/tests/resources/contents/code/extensions/test.f90 swh/web/tests/resources/contents/code/extensions/test.feature swh/web/tests/resources/contents/code/extensions/test.flix swh/web/tests/resources/contents/code/extensions/test.fs swh/web/tests/resources/contents/code/extensions/test.gcode swh/web/tests/resources/contents/code/extensions/test.glsl swh/web/tests/resources/contents/code/extensions/test.gml swh/web/tests/resources/contents/code/extensions/test.gms swh/web/tests/resources/contents/code/extensions/test.go swh/web/tests/resources/contents/code/extensions/test.golo swh/web/tests/resources/contents/code/extensions/test.gradle swh/web/tests/resources/contents/code/extensions/test.groovy swh/web/tests/resources/contents/code/extensions/test.gss swh/web/tests/resources/contents/code/extensions/test.haml swh/web/tests/resources/contents/code/extensions/test.hbs swh/web/tests/resources/contents/code/extensions/test.hs swh/web/tests/resources/contents/code/extensions/test.hsp swh/web/tests/resources/contents/code/extensions/test.html swh/web/tests/resources/contents/code/extensions/test.hx swh/web/tests/resources/contents/code/extensions/test.hy swh/web/tests/resources/contents/code/extensions/test.ini swh/web/tests/resources/contents/code/extensions/test.ino swh/web/tests/resources/contents/code/extensions/test.java swh/web/tests/resources/contents/code/extensions/test.jl swh/web/tests/resources/contents/code/extensions/test.js swh/web/tests/resources/contents/code/extensions/test.json swh/web/tests/resources/contents/code/extensions/test.kt swh/web/tests/resources/contents/code/extensions/test.lasso swh/web/tests/resources/contents/code/extensions/test.lc swh/web/tests/resources/contents/code/extensions/test.ldif swh/web/tests/resources/contents/code/extensions/test.leaf swh/web/tests/resources/contents/code/extensions/test.less swh/web/tests/resources/contents/code/extensions/test.lisp swh/web/tests/resources/contents/code/extensions/test.ll swh/web/tests/resources/contents/code/extensions/test.ls swh/web/tests/resources/contents/code/extensions/test.lsl swh/web/tests/resources/contents/code/extensions/test.lua swh/web/tests/resources/contents/code/extensions/test.m swh/web/tests/resources/contents/code/extensions/test.md swh/web/tests/resources/contents/code/extensions/test.mel swh/web/tests/resources/contents/code/extensions/test.mk swh/web/tests/resources/contents/code/extensions/test.ml swh/web/tests/resources/contents/code/extensions/test.moon swh/web/tests/resources/contents/code/extensions/test.nim swh/web/tests/resources/contents/code/extensions/test.nix swh/web/tests/resources/contents/code/extensions/test.nsi swh/web/tests/resources/contents/code/extensions/test.p swh/web/tests/resources/contents/code/extensions/test.pbi swh/web/tests/resources/contents/code/extensions/test.pde swh/web/tests/resources/contents/code/extensions/test.php swh/web/tests/resources/contents/code/extensions/test.pl swh/web/tests/resources/contents/code/extensions/test.pony swh/web/tests/resources/contents/code/extensions/test.pp swh/web/tests/resources/contents/code/extensions/test.properties swh/web/tests/resources/contents/code/extensions/test.proto swh/web/tests/resources/contents/code/extensions/test.ps1 swh/web/tests/resources/contents/code/extensions/test.py swh/web/tests/resources/contents/code/extensions/test.q swh/web/tests/resources/contents/code/extensions/test.qml swh/web/tests/resources/contents/code/extensions/test.rb swh/web/tests/resources/contents/code/extensions/test.re swh/web/tests/resources/contents/code/extensions/test.rib swh/web/tests/resources/contents/code/extensions/test.rs swh/web/tests/resources/contents/code/extensions/test.rsc swh/web/tests/resources/contents/code/extensions/test.s swh/web/tests/resources/contents/code/extensions/test.sas swh/web/tests/resources/contents/code/extensions/test.scad swh/web/tests/resources/contents/code/extensions/test.scala swh/web/tests/resources/contents/code/extensions/test.sci swh/web/tests/resources/contents/code/extensions/test.scm swh/web/tests/resources/contents/code/extensions/test.scss swh/web/tests/resources/contents/code/extensions/test.sh swh/web/tests/resources/contents/code/extensions/test.sl swh/web/tests/resources/contents/code/extensions/test.smali swh/web/tests/resources/contents/code/extensions/test.sml swh/web/tests/resources/contents/code/extensions/test.sqf swh/web/tests/resources/contents/code/extensions/test.st swh/web/tests/resources/contents/code/extensions/test.stan swh/web/tests/resources/contents/code/extensions/test.styl swh/web/tests/resources/contents/code/extensions/test.subunit swh/web/tests/resources/contents/code/extensions/test.swift swh/web/tests/resources/contents/code/extensions/test.tap swh/web/tests/resources/contents/code/extensions/test.tcl swh/web/tests/resources/contents/code/extensions/test.tex swh/web/tests/resources/contents/code/extensions/test.thrift swh/web/tests/resources/contents/code/extensions/test.ts swh/web/tests/resources/contents/code/extensions/test.v swh/web/tests/resources/contents/code/extensions/test.vala swh/web/tests/resources/contents/code/extensions/test.vb swh/web/tests/resources/contents/code/extensions/test.vbs swh/web/tests/resources/contents/code/extensions/test.vhd swh/web/tests/resources/contents/code/extensions/test.vim swh/web/tests/resources/contents/code/extensions/test.wl swh/web/tests/resources/contents/code/extensions/test.xml swh/web/tests/resources/contents/code/extensions/test.xqy swh/web/tests/resources/contents/code/extensions/test.yml swh/web/tests/resources/contents/code/extensions/test.zep swh/web/tests/resources/contents/code/filenames/.htaccess swh/web/tests/resources/contents/code/filenames/CMakeLists.txt swh/web/tests/resources/contents/code/filenames/Dockerfile swh/web/tests/resources/contents/code/filenames/Makefile swh/web/tests/resources/contents/code/filenames/access.log swh/web/tests/resources/contents/code/filenames/httpd.conf swh/web/tests/resources/contents/code/filenames/nginx.conf swh/web/tests/resources/contents/code/filenames/nginx.log swh/web/tests/resources/contents/code/filenames/pf.conf swh/web/tests/resources/contents/code/filenames/resolv.conf swh/web/tests/resources/contents/other/extensions/bash-cheatsheet.pdf swh/web/tests/resources/contents/other/extensions/public.gpg swh/web/tests/resources/contents/other/extensions/swh-logo.jpeg swh/web/tests/resources/contents/other/extensions/swh-logo.png swh/web/tests/resources/contents/other/extensions/swh-logo.webp swh/web/tests/resources/contents/other/extensions/swh-spinner.gif swh/web/tests/resources/contents/other/extensions/word2vec.ipynb swh/web/tests/resources/deposit/raw-metadata-add-to-origin.xml swh/web/tests/resources/deposit/raw-metadata-create-origin.xml swh/web/tests/resources/deposit/raw-metadata-no-swh.xml swh/web/tests/resources/deposit/raw-metadata-provenance.xml swh/web/tests/resources/http_esnode1.internal.softwareheritage.org/swh_workers-*__search swh/web/tests/resources/repos/highlightjs-line-numbers.js.zip swh/web/tests/resources/repos/highlightjs-line-numbers.js_visit2.zip swh/web/tests/resources/repos/libtess2.zip swh/web/tests/resources/repos/repo_with_submodules.tgz \ No newline at end of file diff --git a/swh/web/api/throttling.py b/swh/web/api/throttling.py index 87ffb456..faad552e 100644 --- a/swh/web/api/throttling.py +++ b/swh/web/api/throttling.py @@ -1,216 +1,218 @@ # Copyright (C) 2017-2022 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information from ipaddress import IPv4Network, IPv6Network, ip_address, ip_network from typing import Callable, List, TypeVar, Union from django.core.exceptions import ImproperlyConfigured import rest_framework from rest_framework.throttling import ScopedRateThrottle from swh.web.auth.utils import API_SAVE_ORIGIN_PERMISSION from swh.web.common.exc import sentry_capture_exception from swh.web.config import get_config APIView = TypeVar("APIView", bound="rest_framework.views.APIView") Request = rest_framework.request.Request API_THROTTLING_EXEMPTED_PERM = "swh.web.api.throttling_exempted" class SwhWebRateThrottle(ScopedRateThrottle): """Custom DRF request rate limiter for anonymous users Requests are grouped into scopes. It enables to apply different requests rate limiting based on the scope name but also the input HTTP request types. To associate a scope to requests, one must add a 'throttle_scope' attribute when using a class based view, or call the 'throttle_scope' decorator when using a function based view. By default, requests do not have an associated scope and are not rate limited. Rate limiting can also be configured according to the type of the input HTTP requests for fine grained tuning. For instance, the following YAML configuration section sets a rate of: - 1 per minute for POST requests - 60 per minute for other request types for the 'swh_api' scope while exempting those coming from the 127.0.0.0/8 ip network. .. code-block:: yaml throttling: scopes: swh_api: limiter_rate: default: 60/m POST: 1/m exempted_networks: - 127.0.0.0/8 """ scope = None def __init__(self): super().__init__() self.exempted_networks = None self.num_requests = 0 self.duration = 0 def get_cache_key(self, request, view): # do not handle throttling if user is authenticated if request.user.is_authenticated: return None else: return super().get_cache_key(request, view) def get_exempted_networks( self, scope_name: str ) -> List[Union[IPv4Network, IPv6Network]]: if not self.exempted_networks: scopes = get_config()["throttling"]["scopes"] scope = scopes.get(scope_name) if scope: networks = scope.get("exempted_networks") if networks: self.exempted_networks = [ ip_network(network) for network in networks ] return self.exempted_networks def get_scope(self, view: APIView): if not self.scope: # class based view case return getattr(view, self.scope_attr, None) else: # function based view case return self.scope def allow_request(self, request: Request, view: APIView) -> bool: # class based view case if not self.scope: default_scope = getattr(view, self.scope_attr, None) request_allowed = None if default_scope is not None: # check if there is a specific rate limiting associated # to the request type assert request.method is not None request_scope = f"{default_scope}_{request.method.lower()}" setattr(view, self.scope_attr, request_scope) try: request_allowed = super().allow_request(request, view) # use default rate limiting otherwise except ImproperlyConfigured as exc: sentry_capture_exception(exc) setattr(view, self.scope_attr, default_scope) if request_allowed is None: request_allowed = super().allow_request(request, view) # function based view case else: default_scope = self.scope # check if there is a specific rate limiting associated # to the request type self.scope = default_scope + "_" + request.method.lower() try: self.rate = self.get_rate() # use default rate limiting otherwise except ImproperlyConfigured: self.scope = default_scope self.rate = self.get_rate() self.num_requests, self.duration = self.parse_rate(self.rate) request_allowed = super(ScopedRateThrottle, self).allow_request( request, view ) self.scope = default_scope exempted_networks = self.get_exempted_networks(default_scope) exempted_ip = False if exempted_networks: remote_address = ip_address(self.get_ident(request)) exempted_ip = any( remote_address in network for network in exempted_networks ) request_allowed = exempted_ip or request_allowed # set throttling related data in the request metadata # in order for the ThrottlingHeadersMiddleware to # add X-RateLimit-* headers in the HTTP response if not exempted_ip and hasattr(self, "history"): hit_count = len(self.history) request.META["RateLimit-Limit"] = self.num_requests request.META["RateLimit-Remaining"] = self.num_requests - hit_count wait = self.wait() if wait is not None: request.META["RateLimit-Reset"] = int(self.now + wait) return request_allowed class SwhWebUserRateThrottle(SwhWebRateThrottle): """Custom DRF request rate limiter for authenticated users It has the same behavior than :class:`swh.web.api.throttling.SwhWebRateThrottle` except the number of allowed requests for each throttle scope is increased by a 1Ox factor. """ NUM_REQUESTS_FACTOR = 10 def get_cache_key(self, request, view): # do not handle throttling if user is not authenticated if request.user.is_authenticated: return super(SwhWebRateThrottle, self).get_cache_key(request, view) else: return None def parse_rate(self, rate): # increase number of allowed requests num_requests, duration = super().parse_rate(rate) return (num_requests * self.NUM_REQUESTS_FACTOR, duration) def allow_request(self, request: Request, view: APIView) -> bool: if request.user.is_staff or request.user.has_perm(API_THROTTLING_EXEMPTED_PERM): # no throttling for staff users or users with adequate permission return True scope = self.get_scope(view) - if scope == "save_origin" and request.user.has_perm(API_SAVE_ORIGIN_PERMISSION): + if scope == "swh_save_origin" and request.user.has_perm( + API_SAVE_ORIGIN_PERMISSION + ): # no throttling on save origin endpoint for users with adequate permission return True return super().allow_request(request, view) def throttle_scope(scope: str) -> Callable[..., APIView]: """Decorator that allows the throttle scope of a DRF function based view to be set:: @api_view(['GET', ]) @throttle_scope('scope') def view(request): ... """ def decorator(func: APIView) -> APIView: SwhScopeRateThrottle = type( "SwhWebScopeRateThrottle", (SwhWebRateThrottle,), {"scope": scope} ) SwhScopeUserRateThrottle = type( "SwhWebScopeUserRateThrottle", (SwhWebUserRateThrottle,), {"scope": scope}, ) func.throttle_classes = (SwhScopeRateThrottle, SwhScopeUserRateThrottle) return func return decorator diff --git a/swh/web/api/views/origin.py b/swh/web/api/views/origin.py index 0f3774ff..84fba5d0 100644 --- a/swh/web/api/views/origin.py +++ b/swh/web/api/views/origin.py @@ -1,480 +1,498 @@ # Copyright (C) 2015-2020 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information from distutils.util import strtobool from functools import partial from swh.search.exc import SearchQuerySyntaxError from swh.web.api.apidoc import api_doc, format_docstring from swh.web.api.apiurls import api_route from swh.web.api.utils import ( enrich_origin, enrich_origin_search_result, enrich_origin_visit, ) from swh.web.api.views.utils import api_lookup from swh.web.common import archive from swh.web.common.exc import BadInputExc from swh.web.common.origin_visits import get_origin_visits -from swh.web.common.utils import reverse +from swh.web.common.utils import origin_visit_types, reverse DOC_RETURN_ORIGIN = """ :>json string origin_visits_url: link to in order to get information about the visits for that origin :>json string url: the origin canonical url """ DOC_RETURN_ORIGIN_ARRAY = DOC_RETURN_ORIGIN.replace(":>json", ":>jsonarr") DOC_RETURN_ORIGIN_VISIT = """ :>json string date: ISO8601/RFC3339 representation of the visit date (in UTC) :>json str origin: the origin canonical url :>json string origin_url: link to get information about the origin :>jsonarr string snapshot: the snapshot identifier of the visit (may be null if status is not **full**). :>jsonarr string snapshot_url: link to :http:get:`/api/1/snapshot/(snapshot_id)/` in order to get information about the snapshot of the visit (may be null if status is not **full**). :>json string status: status of the visit (either **full**, **partial** or **ongoing**) :>json number visit: the unique identifier of the visit """ DOC_RETURN_ORIGIN_VISIT_ARRAY = DOC_RETURN_ORIGIN_VISIT.replace(":>json", ":>jsonarr") DOC_RETURN_ORIGIN_VISIT_ARRAY += """ :>jsonarr number id: the unique identifier of the origin :>jsonarr string origin_visit_url: link to :http:get:`/api/1/origin/(origin_url)/visit/(visit_id)/` in order to get information about the visit """ @api_route(r"/origins/", "api-1-origins") @api_doc("/origins/", noargs=True) @format_docstring(return_origin_array=DOC_RETURN_ORIGIN_ARRAY) def api_origins(request): """ .. http:get:: /api/1/origins/ Get list of archived software origins. .. warning:: This endpoint used to provide an ``origin_from`` query parameter, and guarantee an order on results. This is no longer true, and only the Link header should be used for paginating through results. :query int origin_count: The maximum number of origins to return (default to 100, can not exceed 10000) {return_origin_array} {common_headers} {resheader_link} :statuscode 200: no error **Example:** .. parsed-literal:: :swh_web_api:`origins?origin_count=500` """ old_param_origin_from = request.query_params.get("origin_from") if old_param_origin_from: raise BadInputExc("Please use the Link header to browse through result") page_token = request.query_params.get("page_token", None) limit = min(int(request.query_params.get("origin_count", "100")), 10000) page_result = archive.lookup_origins(page_token, limit) origins = [enrich_origin(o, request=request) for o in page_result.results] next_page_token = page_result.next_page_token response = {"results": origins, "headers": {}} if next_page_token is not None: response["headers"]["link-next"] = reverse( "api-1-origins", query_params={"page_token": next_page_token, "origin_count": limit}, request=request, ) return response @api_route(r"/origin/(?P.+)/get/", "api-1-origin") @api_doc("/origin/") @format_docstring(return_origin=DOC_RETURN_ORIGIN) def api_origin(request, origin_url): """ .. http:get:: /api/1/origin/(origin_url)/get/ Get information about a software origin. :param string origin_url: the origin url {return_origin} {common_headers} :statuscode 200: no error :statuscode 404: requested origin can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`origin/https://github.com/python/cpython/get/` """ ori_dict = {"url": origin_url} error_msg = "Origin with url %s not found." % ori_dict["url"] return api_lookup( archive.lookup_origin, ori_dict, notfound_msg=error_msg, enrich_fn=enrich_origin, request=request, ) +def _visit_types(): + docstring = "" + # available visit types are queried using swh-search so we do it in a try + # block in case of failure (for instance in docker environment when + # elasticsearch service is not available) + try: + visit_types = [f"**{visit_type}**" for visit_type in origin_visit_types()] + docstring = ", ".join(visit_types[:-1]) + f", and {visit_types[-1]}" + except Exception: + docstring = "???" + pass + return docstring + + @api_route( - r"/origin/search/(?P.+)/", + r"/origin/search/(?P.*)/", "api-1-origin-search", throttle_scope="swh_api_origin_search", ) @api_doc("/origin/search/") -@format_docstring(return_origin_array=DOC_RETURN_ORIGIN_ARRAY) +@format_docstring( + return_origin_array=DOC_RETURN_ORIGIN_ARRAY, visit_types=_visit_types() +) def api_origin_search(request, url_pattern): """ .. http:get:: /api/1/origin/search/(url_pattern)/ Search for software origins whose urls contain a provided string pattern or match a provided regular expression. The search is performed in a case insensitive way. .. warning:: This endpoint used to provide an ``offset`` query parameter, and guarantee an order on results. This is no longer true, and only the Link header should be used for paginating through results. :param string url_pattern: a string pattern :query boolean use_ql: whether to use swh search query language or not :query int limit: the maximum number of found origins to return (bounded to 1000) :query boolean with_visit: if true, only return origins with at least one visit by Software heritage + :query string visit_type: if provided, only return origins with that + specific visit type (currently the supported types are {visit_types}) {return_origin_array} {common_headers} {resheader_link} :statuscode 200: no error **Example:** .. parsed-literal:: :swh_web_api:`origin/search/python/?limit=2` """ result = {} limit = min(int(request.query_params.get("limit", "70")), 1000) page_token = request.query_params.get("page_token") use_ql = request.query_params.get("use_ql", "false") with_visit = request.query_params.get("with_visit", "false") visit_type = request.query_params.get("visit_type") try: (results, page_token) = api_lookup( archive.search_origin, url_pattern, bool(strtobool(use_ql)), limit, bool(strtobool(with_visit)), [visit_type] if visit_type else None, page_token, enrich_fn=enrich_origin_search_result, request=request, ) except SearchQuerySyntaxError as e: raise BadInputExc(f"Syntax error in search query: {e.args[0]}") if page_token is not None: query_params = {k: v for (k, v) in request.GET.dict().items()} query_params["page_token"] = page_token result["headers"] = { "link-next": reverse( "api-1-origin-search", url_args={"url_pattern": url_pattern}, query_params=query_params, request=request, ) } result.update({"results": results}) return result @api_route(r"/origin/metadata-search/", "api-1-origin-metadata-search") @api_doc("/origin/metadata-search/", noargs=True) @format_docstring(return_origin_array=DOC_RETURN_ORIGIN_ARRAY) def api_origin_metadata_search(request): """ .. http:get:: /api/1/origin/metadata-search/ Search for software origins whose metadata (expressed as a JSON-LD/CodeMeta dictionary) match the provided criteria. For now, only full-text search on this dictionary is supported. :query str fulltext: a string that will be matched against origin metadata; results are ranked and ordered starting with the best ones. :query int limit: the maximum number of found origins to return (bounded to 100) {return_origin_array} {common_headers} :statuscode 200: no error **Example:** .. parsed-literal:: :swh_web_api:`origin/metadata-search/?limit=2&fulltext=Jane%20Doe` """ fulltext = request.query_params.get("fulltext", None) limit = min(int(request.query_params.get("limit", "70")), 100) if not fulltext: content = '"fulltext" must be provided and non-empty.' raise BadInputExc(content) results = api_lookup( archive.search_origin_metadata, fulltext, limit, request=request ) return { "results": results, } @api_route(r"/origin/(?P.*)/visits/", "api-1-origin-visits") @api_doc("/origin/visits/") @format_docstring(return_origin_visit_array=DOC_RETURN_ORIGIN_VISIT_ARRAY) def api_origin_visits(request, origin_url): """ .. http:get:: /api/1/origin/(origin_url)/visits/ Get information about all visits of a software origin. Visits are returned sorted in descending order according to their date. :param str origin_url: a software origin URL :query int per_page: specify the number of visits to list, for pagination purposes :query int last_visit: visit to start listing from, for pagination purposes {common_headers} {resheader_link} {return_origin_visit_array} :statuscode 200: no error :statuscode 404: requested origin can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`origin/https://github.com/hylang/hy/visits/` """ result = {} origin_query = {"url": origin_url} notfound_msg = "No origin {} found".format(origin_url) url_args_next = {"origin_url": origin_url} per_page = int(request.query_params.get("per_page", "10")) last_visit = request.query_params.get("last_visit") if last_visit: last_visit = int(last_visit) def _lookup_origin_visits(origin_query, last_visit=last_visit, per_page=per_page): all_visits = get_origin_visits(origin_query) all_visits.reverse() visits = [] if not last_visit: visits = all_visits[:per_page] else: for i, v in enumerate(all_visits): if v["visit"] == last_visit: visits = all_visits[i + 1 : i + 1 + per_page] break for v in visits: yield v results = api_lookup( _lookup_origin_visits, origin_query, notfound_msg=notfound_msg, enrich_fn=partial( enrich_origin_visit, with_origin_link=False, with_origin_visit_link=True ), request=request, ) if results: nb_results = len(results) if nb_results == per_page: new_last_visit = results[-1]["visit"] query_params = {} query_params["last_visit"] = new_last_visit if request.query_params.get("per_page"): query_params["per_page"] = per_page result["headers"] = { "link-next": reverse( "api-1-origin-visits", url_args=url_args_next, query_params=query_params, request=request, ) } result.update({"results": results}) return result @api_route( r"/origin/(?P.*)/visit/latest/", "api-1-origin-visit-latest", throttle_scope="swh_api_origin_visit_latest", ) @api_doc("/origin/visit/latest/") @format_docstring(return_origin_visit=DOC_RETURN_ORIGIN_VISIT) def api_origin_visit_latest(request, origin_url=None): """ .. http:get:: /api/1/origin/(origin_url)/visit/latest/ Get information about the latest visit of a software origin. :param str origin_url: a software origin URL :query boolean require_snapshot: if true, only return a visit with a snapshot {common_headers} {return_origin_visit} :statuscode 200: no error :statuscode 404: requested origin or visit can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`origin/https://github.com/hylang/hy/visit/latest/` """ require_snapshot = request.query_params.get("require_snapshot", "false") return api_lookup( archive.lookup_origin_visit_latest, origin_url, bool(strtobool(require_snapshot)), notfound_msg=("No visit for origin {} found".format(origin_url)), enrich_fn=partial( enrich_origin_visit, with_origin_link=True, with_origin_visit_link=False ), request=request, ) @api_route( r"/origin/(?P.*)/visit/(?P[0-9]+)/", "api-1-origin-visit" ) @api_doc("/origin/visit/") @format_docstring(return_origin_visit=DOC_RETURN_ORIGIN_VISIT) def api_origin_visit(request, visit_id, origin_url): """ .. http:get:: /api/1/origin/(origin_url)/visit/(visit_id)/ Get information about a specific visit of a software origin. :param str origin_url: a software origin URL :param int visit_id: a visit identifier {common_headers} {return_origin_visit} :statuscode 200: no error :statuscode 404: requested origin or visit can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`origin/https://github.com/hylang/hy/visit/1/` """ return api_lookup( archive.lookup_origin_visit, origin_url, int(visit_id), notfound_msg=("No visit {} for origin {} found".format(visit_id, origin_url)), enrich_fn=partial( enrich_origin_visit, with_origin_link=True, with_origin_visit_link=False ), request=request, ) @api_route( r"/origin/(?P.+)/intrinsic-metadata/", "api-origin-intrinsic-metadata" ) @api_doc("/origin/intrinsic-metadata/") @format_docstring() def api_origin_intrinsic_metadata(request, origin_url): """ .. http:get:: /api/1/origin/(origin_url)/intrinsic-metadata Get intrinsic metadata of a software origin (as a JSON-LD/CodeMeta dictionary). :param string origin_url: the origin url :>json string ???: intrinsic metadata field of the origin {common_headers} :statuscode 200: no error :statuscode 404: requested origin can not be found in the archive **Example:** .. parsed-literal:: :swh_web_api:`origin/https://github.com/python/cpython/intrinsic-metadata` """ return api_lookup( archive.lookup_origin_intrinsic_metadata, origin_url, notfound_msg=f"Origin with url {origin_url} not found", enrich_fn=enrich_origin, request=request, ) diff --git a/swh/web/common/utils.py b/swh/web/common/utils.py index 0eaa259f..fcd3f154 100644 --- a/swh/web/common/utils.py +++ b/swh/web/common/utils.py @@ -1,529 +1,529 @@ # Copyright (C) 2017-2022 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information from datetime import datetime, timezone import functools import os import re from typing import Any, Callable, Dict, List, Optional import urllib.parse from bs4 import BeautifulSoup from docutils.core import publish_parts import docutils.parsers.rst import docutils.utils from docutils.writers.html5_polyglot import HTMLTranslator, Writer from iso8601 import ParseError, parse_date from pkg_resources import get_distribution from prometheus_client.registry import CollectorRegistry import requests from requests.auth import HTTPBasicAuth from django.core.cache import cache from django.core.cache.backends.base import DEFAULT_TIMEOUT from django.http import HttpRequest, QueryDict from django.shortcuts import redirect from django.urls import resolve from django.urls import reverse as django_reverse from swh.web.auth.utils import ( ADD_FORGE_MODERATOR_PERMISSION, ADMIN_LIST_DEPOSIT_PERMISSION, MAILMAP_ADMIN_PERMISSION, ) from swh.web.common.exc import BadInputExc, sentry_capture_exception from swh.web.common.typing import QueryParameters from swh.web.config import SWH_WEB_SERVER_NAME, get_config, search SWH_WEB_METRICS_REGISTRY = CollectorRegistry(auto_describe=True) SWHID_RE = "swh:1:[a-z]{3}:[0-9a-z]{40}" swh_object_icons = { "alias": "mdi mdi-star", "branch": "mdi mdi-source-branch", "branches": "mdi mdi-source-branch", "content": "mdi mdi-file-document", "cnt": "mdi mdi-file-document", "directory": "mdi mdi-folder", "dir": "mdi mdi-folder", "origin": "mdi mdi-source-repository", "ori": "mdi mdi-source-repository", "person": "mdi mdi-account", "revisions history": "mdi mdi-history", "release": "mdi mdi-tag", "rel": "mdi mdi-tag", "releases": "mdi mdi-tag", "revision": "mdi mdi-rotate-90 mdi-source-commit", "rev": "mdi mdi-rotate-90 mdi-source-commit", "snapshot": "mdi mdi-camera", "snp": "mdi mdi-camera", "visits": "mdi mdi-calendar-month", } def reverse( viewname: str, url_args: Optional[Dict[str, Any]] = None, query_params: Optional[QueryParameters] = None, current_app: Optional[str] = None, urlconf: Optional[str] = None, request: Optional[HttpRequest] = None, ) -> str: """An override of django reverse function supporting query parameters. Args: viewname: the name of the django view from which to compute a url url_args: dictionary of url arguments indexed by their names query_params: dictionary of query parameters to append to the reversed url current_app: the name of the django app tighten to the view urlconf: url configuration module request: build an absolute URI if provided Returns: str: the url of the requested view with processed arguments and query parameters """ if url_args: url_args = {k: v for k, v in url_args.items() if v is not None} url = django_reverse( viewname, urlconf=urlconf, kwargs=url_args, current_app=current_app ) if query_params: query_params = {k: v for k, v in query_params.items() if v is not None} if query_params and len(query_params) > 0: query_dict = QueryDict("", mutable=True) for k in sorted(query_params.keys()): query_dict[k] = query_params[k] url += "?" + query_dict.urlencode(safe="/;:") if request is not None: url = request.build_absolute_uri(url) return url def datetime_to_utc(date): """Returns datetime in UTC without timezone info Args: date (datetime.datetime): input datetime with timezone info Returns: datetime.datetime: datetime in UTC without timezone info """ if date.tzinfo and date.tzinfo != timezone.utc: return date.astimezone(tz=timezone.utc) else: return date def parse_iso8601_date_to_utc(iso_date: str) -> datetime: """Given an ISO 8601 datetime string, parse the result as UTC datetime. Returns: a timezone-aware datetime representing the parsed date Raises: swh.web.common.exc.BadInputExc: provided date does not respect ISO 8601 format Samples: - 2016-01-12 - 2016-01-12T09:19:12+0100 - 2007-01-14T20:34:22Z """ try: date = parse_date(iso_date) return datetime_to_utc(date) except ParseError as e: raise BadInputExc(e) def shorten_path(path): """Shorten the given path: for each hash present, only return the first 8 characters followed by an ellipsis""" sha256_re = r"([0-9a-f]{8})[0-9a-z]{56}" sha1_re = r"([0-9a-f]{8})[0-9a-f]{32}" ret = re.sub(sha256_re, r"\1...", path) return re.sub(sha1_re, r"\1...", ret) -def format_utc_iso_date(iso_date, fmt="%d %B %Y, %H:%M UTC"): +def format_utc_iso_date(iso_date, fmt="%d %B %Y, %H:%M:%S UTC"): """Turns a string representation of an ISO 8601 datetime string to UTC and format it into a more human readable one. For instance, from the following input string: '2017-05-04T13:27:13+02:00' the following one is returned: '04 May 2017, 11:27 UTC'. Custom format string may also be provided as parameter Args: iso_date (str): a string representation of an ISO 8601 date fmt (str): optional date formatting string Returns: str: a formatted string representation of the input iso date """ if not iso_date: return iso_date date = parse_iso8601_date_to_utc(iso_date) return date.strftime(fmt) def gen_path_info(path): """Function to generate path data navigation for use with a breadcrumb in the swh web ui. For instance, from a path /folder1/folder2/folder3, it returns the following list:: [{'name': 'folder1', 'path': 'folder1'}, {'name': 'folder2', 'path': 'folder1/folder2'}, {'name': 'folder3', 'path': 'folder1/folder2/folder3'}] Args: path: a filesystem path Returns: list: a list of path data for navigation as illustrated above. """ path_info = [] if path: sub_paths = path.strip("/").split("/") path_from_root = "" for p in sub_paths: path_from_root += "/" + p path_info.append({"name": p, "path": path_from_root.strip("/")}) return path_info def parse_rst(text, report_level=2): """ Parse a reStructuredText string with docutils. Args: text (str): string with reStructuredText markups in it report_level (int): level of docutils report messages to print (1 info 2 warning 3 error 4 severe 5 none) Returns: docutils.nodes.document: a parsed docutils document """ parser = docutils.parsers.rst.Parser() components = (docutils.parsers.rst.Parser,) settings = docutils.frontend.OptionParser( components=components ).get_default_values() settings.report_level = report_level document = docutils.utils.new_document("rst-doc", settings=settings) parser.parse(text, document) return document def get_client_ip(request): """ Return the client IP address from an incoming HTTP request. Args: request (django.http.HttpRequest): the incoming HTTP request Returns: str: The client IP address """ x_forwarded_for = request.META.get("HTTP_X_FORWARDED_FOR") if x_forwarded_for: ip = x_forwarded_for.split(",")[0] else: ip = request.META.get("REMOTE_ADDR") return ip def is_swh_web_development(request: HttpRequest) -> bool: """Indicate if we are running a development version of swh-web.""" site_base_url = request.build_absolute_uri("/") return any( host in site_base_url for host in ("localhost", "127.0.0.1", "testserver") ) def is_swh_web_staging(request: HttpRequest) -> bool: """Indicate if we are running a staging version of swh-web.""" config = get_config() site_base_url = request.build_absolute_uri("/") return any( server_name in site_base_url for server_name in config["staging_server_names"] ) def is_swh_web_production(request: HttpRequest) -> bool: """Indicate if we are running the public production version of swh-web.""" return SWH_WEB_SERVER_NAME in request.build_absolute_uri("/") browsers_supported_image_mimes = set( [ "image/gif", "image/png", "image/jpeg", "image/bmp", "image/webp", "image/svg", "image/svg+xml", ] ) def context_processor(request): """ Django context processor used to inject variables in all swh-web templates. """ config = get_config() if ( hasattr(request, "user") and request.user.is_authenticated and not hasattr(request.user, "backend") ): # To avoid django.template.base.VariableDoesNotExist errors # when rendering templates when standard Django user is logged in. request.user.backend = "django.contrib.auth.backends.ModelBackend" return { "swh_object_icons": swh_object_icons, "available_languages": None, "swh_client_config": config["client_config"], "oidc_enabled": bool(config["keycloak"]["server_url"]), "browsers_supported_image_mimes": browsers_supported_image_mimes, "keycloak": config["keycloak"], "site_base_url": request.build_absolute_uri("/"), "DJANGO_SETTINGS_MODULE": os.environ["DJANGO_SETTINGS_MODULE"], "status": config["status"], "swh_web_dev": is_swh_web_development(request), "swh_web_staging": is_swh_web_staging(request), "swh_web_version": get_distribution("swh.web").version, "iframe_mode": False, "ADMIN_LIST_DEPOSIT_PERMISSION": ADMIN_LIST_DEPOSIT_PERMISSION, "ADD_FORGE_MODERATOR_PERMISSION": ADD_FORGE_MODERATOR_PERMISSION, "FEATURES": get_config()["features"], "MAILMAP_ADMIN_PERMISSION": MAILMAP_ADMIN_PERMISSION, } def resolve_branch_alias( snapshot: Dict[str, Any], branch: Optional[Dict[str, Any]] ) -> Optional[Dict[str, Any]]: """ Resolve branch alias in snapshot content. Args: snapshot: a full snapshot content branch: a branch alias contained in the snapshot Returns: The real snapshot branch that got aliased. """ while branch and branch["target_type"] == "alias": if branch["target"] in snapshot["branches"]: branch = snapshot["branches"][branch["target"]] else: from swh.web.common import archive snp = archive.lookup_snapshot( snapshot["id"], branches_from=branch["target"], branches_count=1 ) if snp and branch["target"] in snp["branches"]: branch = snp["branches"][branch["target"]] else: branch = None return branch class _NoHeaderHTMLTranslator(HTMLTranslator): """ Docutils translator subclass to customize the generation of HTML from reST-formatted docstrings """ def __init__(self, document): super().__init__(document) self.body_prefix = [] self.body_suffix = [] _HTML_WRITER = Writer() _HTML_WRITER.translator_class = _NoHeaderHTMLTranslator def rst_to_html(rst: str) -> str: """ Convert reStructuredText document into HTML. Args: rst: A string containing a reStructuredText document Returns: Body content of the produced HTML conversion. """ settings = { "initial_header_level": 2, "halt_level": 4, "traceback": True, "file_insertion_enabled": False, "raw_enabled": False, } pp = publish_parts(rst, writer=_HTML_WRITER, settings_overrides=settings) return f'
{pp["html_body"]}
' def prettify_html(html: str) -> str: """ Prettify an HTML document. Args: html: Input HTML document Returns: The prettified HTML document """ return BeautifulSoup(html, "lxml").prettify() def django_cache( timeout: int = DEFAULT_TIMEOUT, catch_exception: bool = False, exception_return_value: Any = None, invalidate_cache_pred: Callable[[Any], bool] = lambda val: False, ): """Decorator to put the result of a function call in Django cache, subsequent calls will directly return the cached value. Args: timeout: The number of seconds value will be hold in cache catch_exception: If :const:`True`, any thrown exception by the decorated function will be caught and not reraised exception_return_value: The value to return if previous parameter is set to :const:`True` invalidate_cache_pred: A predicate function enabling to invalidate the cache under certain conditions, decorated function will then be called again Returns: The returned value of the decorated function for the specified parameters """ def inner(func): @functools.wraps(func) def wrapper(*args, **kwargs): func_args = args + (0,) + tuple(sorted(kwargs.items())) cache_key = str(hash((func.__module__, func.__name__) + func_args)) ret = cache.get(cache_key) if ret is None or invalidate_cache_pred(ret): try: ret = func(*args, **kwargs) except Exception as exc: if catch_exception: sentry_capture_exception(exc) return exception_return_value else: raise else: cache.set(cache_key, ret, timeout=timeout) return ret return wrapper return inner def _deposits_list_url( deposits_list_base_url: str, page_size: int, username: Optional[str] ) -> str: params = {"page_size": str(page_size)} if username is not None: params["username"] = username return f"{deposits_list_base_url}?{urllib.parse.urlencode(params)}" def get_deposits_list(username: Optional[str] = None) -> List[Dict[str, Any]]: """Return the list of software deposits using swh-deposit API""" config = get_config()["deposit"] private_api_url = config["private_api_url"].rstrip("/") + "/" deposits_list_base_url = private_api_url + "deposits" deposits_list_auth = HTTPBasicAuth( config["private_api_user"], config["private_api_password"] ) deposits_list_url = _deposits_list_url( deposits_list_base_url, page_size=1, username=username ) nb_deposits = requests.get( deposits_list_url, auth=deposits_list_auth, timeout=30 ).json()["count"] @django_cache(invalidate_cache_pred=lambda data: data["count"] != nb_deposits) def _get_deposits_data(): deposits_list_url = _deposits_list_url( deposits_list_base_url, page_size=nb_deposits, username=username ) return requests.get( deposits_list_url, auth=deposits_list_auth, timeout=30, ).json() deposits_data = _get_deposits_data() return deposits_data["results"] _origin_visit_types_cache_timeout = 24 * 60 * 60 # 24 hours @django_cache( timeout=_origin_visit_types_cache_timeout, catch_exception=True, exception_return_value=[], ) def origin_visit_types() -> List[str]: """Return the exhaustive list of visit types for origins ingested into the archive. """ return sorted(search().visit_types_count().keys()) def redirect_to_new_route(request, new_route, permanent=True): """Redirect a request to another route with url args and query parameters eg: /origin//log?path=test can be redirected as /log?url=&path=test. This can be used to deprecate routes """ request_path = resolve(request.path_info) args = {**request_path.kwargs, **request.GET.dict()} return redirect( reverse(new_route, query_params=args), permanent=permanent, ) def has_add_forge_now_permission(user) -> bool: """Is a user considered an add-forge-now moderator? Returns True if a user is staff or has add forge now moderator permission """ return user.is_staff or user.has_perm(ADD_FORGE_MODERATOR_PERMISSION) diff --git a/swh/web/settings/tests.py b/swh/web/settings/tests.py index 78eb67ff..bec4b3ae 100644 --- a/swh/web/settings/tests.py +++ b/swh/web/settings/tests.py @@ -1,130 +1,130 @@ # Copyright (C) 2017-2019 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information """ Django tests settings for swh-web. """ import os import sys from swh.web.config import get_config scope1_limiter_rate = 3 scope1_limiter_rate_post = 1 scope2_limiter_rate = 5 scope2_limiter_rate_post = 2 scope3_limiter_rate = 1 scope3_limiter_rate_post = 1 -save_origin_rate_post = 10 +save_origin_rate_post = 5 swh_web_config = get_config() _pytest = "pytest" in sys.argv[0] or "PYTEST_XDIST_WORKER" in os.environ swh_web_config.update( { # enable django debug mode only when running pytest "debug": _pytest, "secret_key": "test", "history_counters_url": "", "throttling": { "cache_uri": None, "scopes": { "swh_api": { "limiter_rate": {"default": "60/min"}, "exempted_networks": ["127.0.0.0/8"], }, "swh_api_origin_search": { "limiter_rate": {"default": "100/min"}, "exempted_networks": ["127.0.0.0/8"], }, "swh_api_origin_visit_latest": { "limiter_rate": {"default": "6000/min"}, "exempted_networks": ["127.0.0.0/8"], }, "swh_vault_cooking": { "limiter_rate": {"default": "120/h", "GET": "60/m"}, "exempted_networks": ["127.0.0.0/8"], }, "swh_save_origin": { "limiter_rate": { "default": "120/h", "POST": "%s/h" % save_origin_rate_post, } }, "scope1": { "limiter_rate": { "default": "%s/min" % scope1_limiter_rate, "POST": "%s/min" % scope1_limiter_rate_post, } }, "scope2": { "limiter_rate": { "default": "%s/min" % scope2_limiter_rate, "POST": "%s/min" % scope2_limiter_rate_post, } }, "scope3": { "limiter_rate": { "default": "%s/min" % scope3_limiter_rate, "POST": "%s/min" % scope3_limiter_rate_post, }, "exempted_networks": ["127.0.0.0/8"], }, }, }, "keycloak": { # disable keycloak use when not running pytest "server_url": "http://localhost:8080/auth/" if _pytest else "", "realm_name": "SoftwareHeritage", }, } ) from .common import * # noqa from .common import LOGGING # noqa, isort: skip ALLOWED_HOSTS = ["*"] DATABASES = { "default": { "ENGINE": "django.db.backends.postgresql", "NAME": swh_web_config["test_db"]["name"], } } # when running cypress tests, make the webapp fetch data from memory storages if not _pytest: swh_web_config.update( { "debug": True, "e2e_tests_mode": True, # ensure scheduler not available to avoid side effects in cypress tests "scheduler": {"cls": "remote", "url": ""}, } ) from django.conf import settings from swh.web.tests.data import get_tests_data, override_storages test_data = get_tests_data() override_storages( test_data["storage"], test_data["idx_storage"], test_data["search"], test_data["counters"], ) # using sqlite3 for frontend tests settings.DATABASES["default"].update( {"ENGINE": "django.db.backends.sqlite3", "NAME": "swh-web-test.sqlite3"} ) else: # Silent DEBUG output when running unit tests LOGGING["handlers"]["console"]["level"] = "INFO" # type: ignore diff --git a/swh/web/templates/includes/content-display.html b/swh/web/templates/includes/content-display.html index f6aa480a..aa1ec399 100644 --- a/swh/web/templates/includes/content-display.html +++ b/swh/web/templates/includes/content-display.html @@ -1,85 +1,85 @@ {% comment %} -Copyright (C) 2017-2021 The Software Heritage developers +Copyright (C) 2017-2022 The Software Heritage developers See the AUTHORS file at the top-level directory of this distribution License: GNU Affero General Public License version 3, or any later version See top-level LICENSE file for more information {% endcomment %} {% load swh_templatetags %} {% include "includes/revision-info.html" %} {% if snapshot_context and snapshot_context.is_empty %} {% include "includes/empty-snapshot.html" %} {% else %} {% if not iframe_mode %}
{% if filename %}
{{ filename }}
{% endif %} {% endif %}
{% if content_size > max_content_size %} Content is too large to be displayed (size is greater than {{ max_content_size|filesizeformat }}). {% elif "inode/x-empty" == mimetype %} File is empty - {% elif filename and filename|default:""|slice:"-5:" == "ipynb" %} -
-
- {% elif "text/" in mimetype or "application/" in mimetype and encoding != "binary" %} -
-
{{ content }}
-
{% elif mimetype in browsers_supported_image_mimes and content %} {% elif "application/pdf" == mimetype %}
Page: /
+ {% elif filename and filename|default:""|slice:"-5:" == "ipynb" %} +
+
+ {% elif "text/" in mimetype or "application/" in mimetype and encoding != "binary" %} +
+
{{ content }}
+
{% elif content %} Content with mime type {{ mimetype }} and encoding {{ encoding }} cannot be displayed. {% else %} {% include "includes/http-error.html" %} {% endif %}
{% if not iframe_mode %}
{% endif %} {% if content %} {% endif %} {% endif %} diff --git a/swh/web/templates/includes/origin-search-form.html b/swh/web/templates/includes/origin-search-form.html index 3356bba6..18dc1afa 100644 --- a/swh/web/templates/includes/origin-search-form.html +++ b/swh/web/templates/includes/origin-search-form.html @@ -1,68 +1,68 @@ {% comment %} Copyright (C) 2020-2021 The Software Heritage developers See the AUTHORS file at the top-level directory of this distribution License: GNU Affero General Public License version 3, or any later version See top-level LICENSE file for more information {% endcomment %}
+ oninput="swh.webapp.validateSWHIDInput(this)" autofocus>
{% if user.is_authenticated and user.is_staff or "swh.web.search_ql" in user.get_all_permissions %} {% endif %}
diff --git a/swh/web/tests/api/views/test_origin.py b/swh/web/tests/api/views/test_origin.py index aec07e32..326ebc26 100644 --- a/swh/web/tests/api/views/test_origin.py +++ b/swh/web/tests/api/views/test_origin.py @@ -1,795 +1,838 @@ # Copyright (C) 2015-2021 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information from datetime import timedelta import json from hypothesis import given import pytest from swh.indexer.storage.model import OriginIntrinsicMetadataRow from swh.model.hashutil import hash_to_bytes from swh.model.model import Origin, OriginVisit, OriginVisitStatus from swh.search.exc import SearchQuerySyntaxError from swh.search.interface import PagedResult from swh.storage.exc import StorageAPIError, StorageDBError from swh.storage.utils import now from swh.web.api.utils import enrich_origin, enrich_origin_visit from swh.web.common.exc import BadInputExc from swh.web.common.origin_visits import get_origin_visits from swh.web.common.utils import reverse from swh.web.tests.api.views.utils import scroll_results from swh.web.tests.data import ( INDEXER_TOOL, ORIGIN_MASTER_REVISION, ORIGIN_METADATA_KEY, ORIGIN_METADATA_VALUE, ) from swh.web.tests.strategies import new_origin, new_snapshots, visit_dates from swh.web.tests.utils import check_api_get_responses def test_api_lookup_origin_visits_raise_error(api_client, mocker): mock_get_origin_visits = mocker.patch("swh.web.api.views.origin.get_origin_visits") err_msg = "voluntary error to check the bad request middleware." mock_get_origin_visits.side_effect = BadInputExc(err_msg) url = reverse("api-1-origin-visits", url_args={"origin_url": "http://foo"}) rv = check_api_get_responses(api_client, url, status_code=400) assert rv.data == {"exception": "BadInputExc", "reason": err_msg} def test_api_lookup_origin_visits_raise_swh_storage_error_db(api_client, mocker): mock_get_origin_visits = mocker.patch("swh.web.api.views.origin.get_origin_visits") err_msg = "Storage exploded! Will be back online shortly!" mock_get_origin_visits.side_effect = StorageDBError(err_msg) url = reverse("api-1-origin-visits", url_args={"origin_url": "http://foo"}) rv = check_api_get_responses(api_client, url, status_code=503) assert rv.data == { "exception": "StorageDBError", "reason": "An unexpected error occurred in the backend: %s" % err_msg, } def test_api_lookup_origin_visits_raise_swh_storage_error_api(api_client, mocker): mock_get_origin_visits = mocker.patch("swh.web.api.views.origin.get_origin_visits") err_msg = "Storage API dropped dead! Will resurrect asap!" mock_get_origin_visits.side_effect = StorageAPIError(err_msg) url = reverse("api-1-origin-visits", url_args={"origin_url": "http://foo"}) rv = check_api_get_responses(api_client, url, status_code=503) assert rv.data == { "exception": "StorageAPIError", "reason": "An unexpected error occurred in the api backend: %s" % err_msg, } @given(new_origin(), visit_dates(3), new_snapshots(3)) def test_api_lookup_origin_visits( api_client, subtest, new_origin, visit_dates, new_snapshots ): # ensure archive_data fixture will be reset between each hypothesis # example test run @subtest def test_inner(archive_data): archive_data.origin_add([new_origin]) for i, visit_date in enumerate(visit_dates): origin_visit = archive_data.origin_visit_add( [ OriginVisit( origin=new_origin.url, date=visit_date, type="git", ) ] )[0] archive_data.snapshot_add([new_snapshots[i]]) visit_status = OriginVisitStatus( origin=new_origin.url, visit=origin_visit.visit, date=now(), status="full", snapshot=new_snapshots[i].id, ) archive_data.origin_visit_status_add([visit_status]) all_visits = list(reversed(get_origin_visits(new_origin.to_dict()))) for last_visit, expected_visits in ( (None, all_visits[:2]), (all_visits[1]["visit"], all_visits[2:]), ): url = reverse( "api-1-origin-visits", url_args={"origin_url": new_origin.url}, query_params={"per_page": 2, "last_visit": last_visit}, ) rv = check_api_get_responses(api_client, url, status_code=200) for i in range(len(expected_visits)): expected_visits[i] = enrich_origin_visit( expected_visits[i], with_origin_link=False, with_origin_visit_link=True, request=rv.wsgi_request, ) assert rv.data == expected_visits @given(new_origin(), visit_dates(3), new_snapshots(3)) def test_api_lookup_origin_visits_by_id( api_client, subtest, new_origin, visit_dates, new_snapshots ): # ensure archive_data fixture will be reset between each hypothesis # example test run @subtest def test_inner(archive_data): archive_data.origin_add([new_origin]) for i, visit_date in enumerate(visit_dates): origin_visit = archive_data.origin_visit_add( [ OriginVisit( origin=new_origin.url, date=visit_date, type="git", ) ] )[0] archive_data.snapshot_add([new_snapshots[i]]) visit_status = OriginVisitStatus( origin=new_origin.url, visit=origin_visit.visit, date=now(), status="full", snapshot=new_snapshots[i].id, ) archive_data.origin_visit_status_add([visit_status]) all_visits = list(reversed(get_origin_visits(new_origin.to_dict()))) for last_visit, expected_visits in ( (None, all_visits[:2]), (all_visits[1]["visit"], all_visits[2:4]), ): url = reverse( "api-1-origin-visits", url_args={"origin_url": new_origin.url}, query_params={"per_page": 2, "last_visit": last_visit}, ) rv = check_api_get_responses(api_client, url, status_code=200) for i in range(len(expected_visits)): expected_visits[i] = enrich_origin_visit( expected_visits[i], with_origin_link=False, with_origin_visit_link=True, request=rv.wsgi_request, ) assert rv.data == expected_visits @given(new_origin(), visit_dates(3), new_snapshots(3)) def test_api_lookup_origin_visit( api_client, subtest, new_origin, visit_dates, new_snapshots ): # ensure archive_data fixture will be reset between each hypothesis # example test run @subtest def test_inner(archive_data): archive_data.origin_add([new_origin]) for i, visit_date in enumerate(visit_dates): origin_visit = archive_data.origin_visit_add( [ OriginVisit( origin=new_origin.url, date=visit_date, type="git", ) ] )[0] visit_id = origin_visit.visit archive_data.snapshot_add([new_snapshots[i]]) visit_status = OriginVisitStatus( origin=new_origin.url, visit=origin_visit.visit, date=visit_date + timedelta(minutes=5), status="full", snapshot=new_snapshots[i].id, ) archive_data.origin_visit_status_add([visit_status]) url = reverse( "api-1-origin-visit", url_args={"origin_url": new_origin.url, "visit_id": visit_id}, ) rv = check_api_get_responses(api_client, url, status_code=200) expected_visit = archive_data.origin_visit_get_by(new_origin.url, visit_id) expected_visit = enrich_origin_visit( expected_visit, with_origin_link=True, with_origin_visit_link=False, request=rv.wsgi_request, ) assert rv.data == expected_visit @given(new_origin()) def test_api_lookup_origin_visit_latest_no_visit(api_client, archive_data, new_origin): archive_data.origin_add([new_origin]) url = reverse("api-1-origin-visit-latest", url_args={"origin_url": new_origin.url}) rv = check_api_get_responses(api_client, url, status_code=404) assert rv.data == { "exception": "NotFoundExc", "reason": "No visit for origin %s found" % new_origin.url, } @given(new_origin(), visit_dates(2), new_snapshots(1)) def test_api_lookup_origin_visit_latest( api_client, subtest, new_origin, visit_dates, new_snapshots ): # ensure archive_data fixture will be reset between each hypothesis # example test run @subtest def test_inner(archive_data): archive_data.origin_add([new_origin]) visit_dates.sort() visit_ids = [] for i, visit_date in enumerate(visit_dates): origin_visit = archive_data.origin_visit_add( [ OriginVisit( origin=new_origin.url, date=visit_date, type="git", ) ] )[0] visit_ids.append(origin_visit.visit) archive_data.snapshot_add([new_snapshots[0]]) visit_status = OriginVisitStatus( origin=new_origin.url, visit=visit_ids[0], date=now(), status="full", snapshot=new_snapshots[0].id, ) archive_data.origin_visit_status_add([visit_status]) url = reverse( "api-1-origin-visit-latest", url_args={"origin_url": new_origin.url} ) rv = check_api_get_responses(api_client, url, status_code=200) expected_visit = archive_data.origin_visit_status_get_latest( new_origin.url, type="git" ) expected_visit = enrich_origin_visit( expected_visit, with_origin_link=True, with_origin_visit_link=False, request=rv.wsgi_request, ) assert rv.data == expected_visit @given(new_origin(), visit_dates(2), new_snapshots(1)) def test_api_lookup_origin_visit_latest_with_snapshot( api_client, subtest, new_origin, visit_dates, new_snapshots ): # ensure archive_data fixture will be reset between each hypothesis # example test run @subtest def test_inner(archive_data): archive_data.origin_add([new_origin]) visit_dates.sort() visit_ids = [] for i, visit_date in enumerate(visit_dates): origin_visit = archive_data.origin_visit_add( [ OriginVisit( origin=new_origin.url, date=visit_date, type="git", ) ] )[0] visit_ids.append(origin_visit.visit) archive_data.snapshot_add([new_snapshots[0]]) # Add snapshot to the latest visit visit_id = visit_ids[-1] visit_status = OriginVisitStatus( origin=new_origin.url, visit=visit_id, date=now(), status="full", snapshot=new_snapshots[0].id, ) archive_data.origin_visit_status_add([visit_status]) url = reverse( "api-1-origin-visit-latest", url_args={"origin_url": new_origin.url}, query_params={"require_snapshot": True}, ) rv = check_api_get_responses(api_client, url, status_code=200) expected_visit = archive_data.origin_visit_status_get_latest( new_origin.url, type="git", require_snapshot=True ) expected_visit = enrich_origin_visit( expected_visit, with_origin_link=True, with_origin_visit_link=False, request=rv.wsgi_request, ) assert rv.data == expected_visit def test_api_lookup_origin_visit_not_found(api_client, origin): all_visits = list(reversed(get_origin_visits(origin))) max_visit_id = max([v["visit"] for v in all_visits]) url = reverse( "api-1-origin-visit", url_args={"origin_url": origin["url"], "visit_id": max_visit_id + 1}, ) rv = check_api_get_responses(api_client, url, status_code=404) assert rv.data == { "exception": "NotFoundExc", "reason": "Origin %s or its visit with id %s not found!" % (origin["url"], max_visit_id + 1), } def test_api_origins_wrong_input(api_client, archive_data): """Should fail with 400 if the input is deprecated.""" # fail if wrong input url = reverse("api-1-origins", query_params={"origin_from": 1}) rv = check_api_get_responses(api_client, url, status_code=400) assert rv.data == { "exception": "BadInputExc", "reason": "Please use the Link header to browse through result", } def test_api_origins(api_client, archive_data): page_result = archive_data.origin_list(limit=10000) origins = page_result.results origin_urls = {origin.url for origin in origins} # Get only one url = reverse("api-1-origins", query_params={"origin_count": 1}) rv = check_api_get_responses(api_client, url, status_code=200) assert len(rv.data) == 1 assert {origin["url"] for origin in rv.data} <= origin_urls # Get all url = reverse("api-1-origins", query_params={"origin_count": len(origins)}) rv = check_api_get_responses(api_client, url, status_code=200) assert len(rv.data) == len(origins) assert {origin["url"] for origin in rv.data} == origin_urls # Get "all + 10" url = reverse("api-1-origins", query_params={"origin_count": len(origins) + 10}) rv = check_api_get_responses(api_client, url, status_code=200) assert len(rv.data) == len(origins) assert {origin["url"] for origin in rv.data} == origin_urls @pytest.mark.parametrize("origin_count", [1, 2, 10, 100]) def test_api_origins_scroll(api_client, archive_data, origin_count): page_result = archive_data.origin_list(limit=10000) origins = page_result.results origin_urls = {origin.url for origin in origins} url = reverse("api-1-origins", query_params={"origin_count": origin_count}) results = scroll_results(api_client, url) assert len(results) == len(origins) assert {origin["url"] for origin in results} == origin_urls def test_api_origin_by_url(api_client, archive_data, origin): origin_url = origin["url"] url = reverse("api-1-origin", url_args={"origin_url": origin_url}) rv = check_api_get_responses(api_client, url, status_code=200) expected_origin = archive_data.origin_get([origin_url])[0] expected_origin = enrich_origin(expected_origin, rv.wsgi_request) assert rv.data == expected_origin @given(new_origin()) def test_api_origin_not_found(api_client, new_origin): url = reverse("api-1-origin", url_args={"origin_url": new_origin.url}) rv = check_api_get_responses(api_client, url, status_code=404) assert rv.data == { "exception": "NotFoundExc", "reason": "Origin with url %s not found!" % new_origin.url, } @pytest.mark.parametrize("backend", ["swh-search", "swh-storage"]) def test_api_origin_search(api_client, mocker, backend): if backend != "swh-search": # equivalent to not configuring search in the config mocker.patch("swh.web.common.archive.search", None) expected_origins = { "https://github.com/wcoder/highlightjs-line-numbers.js", "https://github.com/memononen/libtess2", } # Search for 'github.com', get only one url = reverse( "api-1-origin-search", url_args={"url_pattern": "github.com"}, query_params={"limit": 1}, ) rv = check_api_get_responses(api_client, url, status_code=200) assert len(rv.data) == 1 assert {origin["url"] for origin in rv.data} <= expected_origins assert rv.data == [ enrich_origin({"url": origin["url"]}, request=rv.wsgi_request) for origin in rv.data ] # Search for 'github.com', get all url = reverse( "api-1-origin-search", url_args={"url_pattern": "github.com"}, query_params={"limit": 2}, ) rv = check_api_get_responses(api_client, url, status_code=200) assert {origin["url"] for origin in rv.data} == expected_origins assert rv.data == [ enrich_origin({"url": origin["url"]}, request=rv.wsgi_request) for origin in rv.data ] # Search for 'github.com', get more than available url = reverse( "api-1-origin-search", url_args={"url_pattern": "github.com"}, query_params={"limit": 10}, ) rv = check_api_get_responses(api_client, url, status_code=200) assert {origin["url"] for origin in rv.data} == expected_origins assert rv.data == [ enrich_origin({"url": origin["url"]}, request=rv.wsgi_request) for origin in rv.data ] @pytest.mark.parametrize("backend", ["swh-search", "swh-storage"]) def test_api_origin_search_words(api_client, mocker, backend): if backend != "swh-search": # equivalent to not configuring search in the config mocker.patch("swh.web.common.archive.search", None) expected_origins = { "https://github.com/wcoder/highlightjs-line-numbers.js", "https://github.com/memononen/libtess2", } url = reverse( "api-1-origin-search", url_args={"url_pattern": "github com"}, query_params={"limit": 2}, ) rv = check_api_get_responses(api_client, url, status_code=200) assert {origin["url"] for origin in rv.data} == expected_origins url = reverse( "api-1-origin-search", url_args={"url_pattern": "com github"}, query_params={"limit": 2}, ) rv = check_api_get_responses(api_client, url, status_code=200) assert {origin["url"] for origin in rv.data} == expected_origins url = reverse( "api-1-origin-search", url_args={"url_pattern": "memononen libtess2"}, query_params={"limit": 2}, ) rv = check_api_get_responses(api_client, url, status_code=200) assert len(rv.data) == 1 assert {origin["url"] for origin in rv.data} == { "https://github.com/memononen/libtess2" } url = reverse( "api-1-origin-search", url_args={"url_pattern": "libtess2 memononen"}, query_params={"limit": 2}, ) rv = check_api_get_responses(api_client, url, status_code=200) assert len(rv.data) == 1 assert {origin["url"] for origin in rv.data} == { "https://github.com/memononen/libtess2" } @pytest.mark.parametrize("backend", ["swh-search", "swh-storage"]) def test_api_origin_search_visit_type(api_client, mocker, backend): if backend != "swh-search": # equivalent to not configuring search in the config mocker.patch("swh.web.common.archive.search", None) expected_origins = { "https://github.com/wcoder/highlightjs-line-numbers.js", "https://github.com/memononen/libtess2", } url = reverse( "api-1-origin-search", url_args={ "url_pattern": "github com", }, query_params={"visit_type": "git"}, ) rv = check_api_get_responses(api_client, url, status_code=200) assert {origin["url"] for origin in rv.data} == expected_origins url = reverse( "api-1-origin-search", url_args={ "url_pattern": "github com", }, query_params={"visit_type": "foo"}, ) rv = check_api_get_responses(api_client, url, status_code=200) assert rv.data == [] def test_api_origin_search_use_ql(api_client, mocker): expected_origins = { "https://github.com/wcoder/highlightjs-line-numbers.js", "https://github.com/memononen/libtess2", } ORIGINS = [{"url": origin} for origin in expected_origins] mock_archive_search = mocker.patch("swh.web.common.archive.search") mock_archive_search.origin_search.return_value = PagedResult( results=ORIGINS, next_page_token=None, ) query = "origin : 'github.com'" url = reverse( "api-1-origin-search", url_args={"url_pattern": query}, query_params={"visit_type": "git", "use_ql": "true"}, ) rv = check_api_get_responses(api_client, url, status_code=200) assert {origin["url"] for origin in rv.data} == expected_origins mock_archive_search.origin_search.assert_called_with( query=query, page_token=None, with_visit=False, visit_types=["git"], limit=70 ) def test_api_origin_search_ql_syntax_error(api_client, mocker): mock_archive_search = mocker.patch("swh.web.common.archive.search") mock_archive_search.origin_search.side_effect = SearchQuerySyntaxError( "Invalid syntax" ) query = "this is not a valid query" url = reverse( "api-1-origin-search", url_args={"url_pattern": query}, query_params={"visit_type": "git", "use_ql": "true"}, ) rv = check_api_get_responses(api_client, url, status_code=400) assert rv.data == { "exception": "BadInputExc", "reason": "Syntax error in search query: Invalid syntax", } mock_archive_search.origin_search.assert_called_with( query=query, page_token=None, with_visit=False, visit_types=["git"], limit=70 ) @pytest.mark.parametrize("backend", ["swh-search", "swh-storage"]) @pytest.mark.parametrize("limit", [1, 2, 3, 10]) def test_api_origin_search_scroll(api_client, archive_data, mocker, limit, backend): if backend != "swh-search": # equivalent to not configuring search in the config mocker.patch("swh.web.common.archive.search", None) expected_origins = { "https://github.com/wcoder/highlightjs-line-numbers.js", "https://github.com/memononen/libtess2", } url = reverse( "api-1-origin-search", url_args={"url_pattern": "github.com"}, query_params={"limit": limit}, ) results = scroll_results(api_client, url) assert {origin["url"] for origin in results} == expected_origins @pytest.mark.parametrize("backend", ["swh-search", "swh-storage"]) def test_api_origin_search_limit(api_client, archive_data, tests_data, mocker, backend): if backend == "swh-search": tests_data["search"].origin_update( [{"url": "http://foobar/{}".format(i)} for i in range(2000)] ) else: # equivalent to not configuring search in the config mocker.patch("swh.web.common.archive.search", None) archive_data.origin_add( [Origin(url="http://foobar/{}".format(i)) for i in range(2000)] ) url = reverse( "api-1-origin-search", url_args={"url_pattern": "foobar"}, query_params={"limit": 1050}, ) rv = check_api_get_responses(api_client, url, status_code=200) assert len(rv.data) == 1000 @pytest.mark.parametrize("backend", ["swh-search", "swh-indexer-storage"]) def test_api_origin_metadata_search(api_client, mocker, backend): mock_config = mocker.patch("swh.web.common.archive.config") mock_config.get_config.return_value = { "search_config": {"metadata_backend": backend} } url = reverse( "api-1-origin-metadata-search", query_params={"fulltext": ORIGIN_METADATA_VALUE} ) rv = check_api_get_responses(api_client, url, status_code=200) rv.data = sorted(rv.data, key=lambda d: d["url"]) expected_data = sorted( [ { "url": origin_url, "metadata": { "from_revision": ORIGIN_MASTER_REVISION[origin_url], "tool": { "name": INDEXER_TOOL["tool_name"], "version": INDEXER_TOOL["tool_version"], "configuration": INDEXER_TOOL["tool_configuration"], "id": INDEXER_TOOL["id"], }, "mappings": [], }, } for origin_url in sorted(ORIGIN_MASTER_REVISION.keys()) ], key=lambda d: d["url"], ) for i in range(len(expected_data)): expected = expected_data[i] response = rv.data[i] metadata = response["metadata"].pop("metadata") assert any( [ORIGIN_METADATA_VALUE in json.dumps(val) for val in metadata.values()] ) assert response == expected def test_api_origin_metadata_search_limit(api_client, mocker): mock_idx_storage = mocker.patch("swh.web.common.archive.idx_storage") oimsft = mock_idx_storage.origin_intrinsic_metadata_search_fulltext oimsft.side_effect = lambda conjunction, limit: [ OriginIntrinsicMetadataRow( id=origin_url, from_revision=hash_to_bytes(master_rev), indexer_configuration_id=INDEXER_TOOL["id"], metadata={ORIGIN_METADATA_KEY: ORIGIN_METADATA_VALUE}, mappings=[], ) for origin_url, master_rev in ORIGIN_MASTER_REVISION.items() ] url = reverse( "api-1-origin-metadata-search", query_params={"fulltext": ORIGIN_METADATA_VALUE} ) rv = check_api_get_responses(api_client, url, status_code=200) assert len(rv.data) == len(ORIGIN_MASTER_REVISION) oimsft.assert_called_with(conjunction=[ORIGIN_METADATA_VALUE], limit=70) url = reverse( "api-1-origin-metadata-search", query_params={"fulltext": ORIGIN_METADATA_VALUE, "limit": 10}, ) rv = check_api_get_responses(api_client, url, status_code=200) assert len(rv.data) == len(ORIGIN_MASTER_REVISION) oimsft.assert_called_with(conjunction=[ORIGIN_METADATA_VALUE], limit=10) url = reverse( "api-1-origin-metadata-search", query_params={"fulltext": ORIGIN_METADATA_VALUE, "limit": 987}, ) rv = check_api_get_responses(api_client, url, status_code=200) assert len(rv.data) == len(ORIGIN_MASTER_REVISION) oimsft.assert_called_with(conjunction=[ORIGIN_METADATA_VALUE], limit=100) def test_api_origin_intrinsic_metadata(api_client, origin): url = reverse( "api-origin-intrinsic-metadata", url_args={"origin_url": origin["url"]} ) rv = check_api_get_responses(api_client, url, status_code=200) assert ORIGIN_METADATA_KEY in rv.data assert rv.data[ORIGIN_METADATA_KEY] == ORIGIN_METADATA_VALUE def test_api_origin_metadata_search_invalid(api_client, mocker): mock_idx_storage = mocker.patch("swh.web.common.archive.idx_storage") url = reverse("api-1-origin-metadata-search") check_api_get_responses(api_client, url, status_code=400) mock_idx_storage.assert_not_called() @pytest.mark.parametrize("backend", ["swh-counters", "swh-storage"]) def test_api_stat_counters(api_client, mocker, backend): mock_config = mocker.patch("swh.web.common.archive.config") mock_config.get_config.return_value = {"counters_backend": backend} url = reverse("api-1-stat-counters") rv = check_api_get_responses(api_client, url, status_code=200) counts = json.loads(rv.content) for obj in ["content", "origin", "release", "directory", "revision"]: assert counts.get(obj, 0) > 0 + + +@pytest.fixture +def archived_origins(archive_data): + page_result = archive_data.origin_list(page_token=None, limit=10000) + origins = [origin.to_dict() for origin in page_result.results] + for origin in origins: + ovs = archive_data.origin_visit_get_with_statuses(origin["url"]).results + del origin["id"] + origin["type"] = ovs[0].visit.type + + return origins + + +def test_api_origin_search_empty_pattern(api_client, archived_origins): + url = reverse( + "api-1-origin-search", + url_args={"url_pattern": ""}, + query_params={"limit": 10000}, + ) + + rv = check_api_get_responses(api_client, url, status_code=200) + + assert {o["url"] for o in rv.data} == {o["url"] for o in archived_origins} + + +def test_api_origin_search_empty_pattern_and_visit_type(api_client, archived_origins): + + visit_types = {o["type"] for o in archived_origins} + + for visit_type in visit_types: + + url = reverse( + "api-1-origin-search", + url_args={"url_pattern": ""}, + query_params={"visit_type": visit_type, "limit": 10000}, + ) + + rv = check_api_get_responses(api_client, url, status_code=200) + + assert {o["url"] for o in rv.data} == { + o["url"] for o in archived_origins if o["type"] == visit_type + } diff --git a/swh/web/tests/api/views/test_origin_save.py b/swh/web/tests/api/views/test_origin_save.py index 29359585..c260782c 100644 --- a/swh/web/tests/api/views/test_origin_save.py +++ b/swh/web/tests/api/views/test_origin_save.py @@ -1,604 +1,605 @@ -# Copyright (C) 2018-2021 The Software Heritage developers +# Copyright (C) 2018-2022 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information from datetime import datetime, timedelta import uuid import pytest from django.core.exceptions import ObjectDoesNotExist from django.utils import timezone +from swh.web.api.throttling import SwhWebUserRateThrottle from swh.web.auth.utils import API_SAVE_ORIGIN_PERMISSION, SWH_AMBASSADOR_PERMISSION from swh.web.common.models import ( SAVE_REQUEST_ACCEPTED, SAVE_REQUEST_PENDING, SAVE_REQUEST_REJECTED, SAVE_TASK_FAILED, SAVE_TASK_NOT_CREATED, SAVE_TASK_NOT_YET_SCHEDULED, SAVE_TASK_SCHEDULED, SAVE_TASK_SUCCEEDED, VISIT_STATUS_FAILED, VISIT_STATUS_FULL, SaveAuthorizedOrigin, SaveOriginRequest, SaveUnauthorizedOrigin, ) from swh.web.common.typing import OriginExistenceCheckInfo from swh.web.common.utils import reverse from swh.web.settings.tests import save_origin_rate_post from swh.web.tests.utils import ( check_api_get_responses, check_api_post_response, check_api_post_responses, create_django_permission, ) pytestmark = pytest.mark.django_db @pytest.fixture(autouse=True) def populated_db(): SaveAuthorizedOrigin.objects.create(url="https://github.com/"), SaveAuthorizedOrigin.objects.create(url="https://gitlab.com/"), SaveUnauthorizedOrigin.objects.create(url="https://github.com/user/illegal_repo") SaveUnauthorizedOrigin.objects.create(url="https://gitlab.com/user_to_exclude") def test_invalid_visit_type(api_client, swh_scheduler): url = reverse( "api-1-save-origin", url_args={ "visit_type": "foo", "origin_url": "https://github.com/torvalds/linux", }, ) check_api_get_responses(api_client, url, status_code=400) def test_invalid_origin_url(api_client, swh_scheduler): url = reverse( "api-1-save-origin", url_args={"visit_type": "git", "origin_url": "bar"} ) check_api_get_responses(api_client, url, status_code=400) def check_created_save_request_status( api_client, mocker, origin_url, expected_request_status, expected_task_status=None, visit_date=None, ): mock_origin_exists = mocker.patch("swh.web.common.origin_save.origin_exists") mock_origin_exists.return_value = OriginExistenceCheckInfo( origin_url=origin_url, exists=True, last_modified=None, content_length=None ) url = reverse( "api-1-save-origin", url_args={"visit_type": "git", "origin_url": origin_url} ) mock_visit_date = mocker.patch( ("swh.web.common.origin_save._get_visit_info_for_save_request") ) mock_visit_date.return_value = (visit_date, None) if expected_request_status != SAVE_REQUEST_REJECTED: response = check_api_post_responses(api_client, url, data=None, status_code=200) assert response.data["save_request_status"] == expected_request_status assert response.data["save_task_status"] == expected_task_status else: check_api_post_responses(api_client, url, data=None, status_code=403) def check_save_request_status( api_client, mocker, swh_scheduler, origin_url, expected_request_status, expected_task_status, scheduler_task_status="next_run_not_scheduled", scheduler_task_run_status=None, visit_date=None, visit_status=None, ): if expected_task_status != SAVE_TASK_NOT_CREATED: task = dict(swh_scheduler.search_tasks()[0].items()) backend_id = str(uuid.uuid4()) if scheduler_task_status != "next_run_not_scheduled": swh_scheduler.schedule_task_run(task["id"], backend_id) if scheduler_task_run_status is not None: swh_scheduler.start_task_run(backend_id) task_run = dict( swh_scheduler.end_task_run(backend_id, scheduler_task_run_status).items() ) url = reverse( "api-1-save-origin", url_args={"visit_type": "git", "origin_url": origin_url} ) mock_visit_date = mocker.patch( ("swh.web.common.origin_save._get_visit_info_for_save_request") ) mock_visit_date.return_value = (visit_date, visit_status) response = check_api_get_responses(api_client, url, status_code=200) save_request_data = response.data[0] assert save_request_data["save_request_status"] == expected_request_status assert save_request_data["save_task_status"] == expected_task_status assert save_request_data["visit_status"] == visit_status if scheduler_task_run_status is not None: # Check that save task status is still available when # the scheduler task has been archived swh_scheduler.delete_archived_tasks( [{"task_id": task["id"], "task_run_id": task_run["id"]}] ) response = check_api_get_responses(api_client, url, status_code=200) save_request_data = response.data[0] assert save_request_data["save_task_status"] == expected_task_status assert save_request_data["visit_status"] == visit_status def test_save_request_rejected(api_client, mocker, swh_scheduler): origin_url = "https://github.com/user/illegal_repo" check_created_save_request_status( api_client, mocker, origin_url, expected_request_status=SAVE_REQUEST_REJECTED, ) check_save_request_status( api_client, mocker, swh_scheduler, origin_url, expected_request_status=SAVE_REQUEST_REJECTED, expected_task_status=SAVE_TASK_NOT_CREATED, ) def test_save_request_pending(api_client, mocker, swh_scheduler): origin_url = "https://unkwownforge.com/user/repo" check_created_save_request_status( api_client, mocker, origin_url, expected_request_status=SAVE_REQUEST_PENDING, expected_task_status=SAVE_TASK_NOT_CREATED, ) check_save_request_status( api_client, mocker, swh_scheduler, origin_url, expected_request_status=SAVE_REQUEST_PENDING, expected_task_status=SAVE_TASK_NOT_CREATED, ) def test_save_request_scheduled(api_client, mocker, swh_scheduler): origin_url = "https://github.com/Kitware/CMake" check_created_save_request_status( api_client, mocker, origin_url, expected_request_status=SAVE_REQUEST_ACCEPTED, expected_task_status=SAVE_TASK_NOT_YET_SCHEDULED, ) check_save_request_status( api_client, mocker, swh_scheduler, origin_url, expected_request_status=SAVE_REQUEST_ACCEPTED, expected_task_status=SAVE_TASK_SCHEDULED, scheduler_task_status="next_run_scheduled", scheduler_task_run_status="scheduled", ) def test_save_request_completed(api_client, mocker, swh_scheduler): origin_url = "https://github.com/Kitware/CMake" check_created_save_request_status( api_client, mocker, origin_url, expected_request_status=SAVE_REQUEST_ACCEPTED, expected_task_status=SAVE_TASK_NOT_YET_SCHEDULED, ) check_save_request_status( api_client, mocker, swh_scheduler, origin_url, expected_request_status=SAVE_REQUEST_ACCEPTED, expected_task_status=SAVE_TASK_SUCCEEDED, scheduler_task_status="completed", scheduler_task_run_status="eventful", visit_date=None, ) def test_save_request_completed_visit_status(api_client, mocker, swh_scheduler): origin_url = "https://github.com/Kitware/CMake" check_created_save_request_status( api_client, mocker, origin_url, expected_request_status=SAVE_REQUEST_ACCEPTED, expected_task_status=SAVE_TASK_NOT_YET_SCHEDULED, ) visit_date = datetime.now(tz=timezone.utc) + timedelta(hours=1) check_save_request_status( api_client, mocker, swh_scheduler, origin_url, expected_request_status=SAVE_REQUEST_ACCEPTED, expected_task_status=SAVE_TASK_SUCCEEDED, scheduler_task_status="completed", scheduler_task_run_status="eventful", visit_date=visit_date, visit_status=VISIT_STATUS_FULL, ) def test_save_request_failed(api_client, mocker, swh_scheduler): origin_url = "https://gitlab.com/inkscape/inkscape" check_created_save_request_status( api_client, mocker, origin_url, expected_request_status=SAVE_REQUEST_ACCEPTED, expected_task_status=SAVE_TASK_NOT_YET_SCHEDULED, ) check_save_request_status( api_client, mocker, swh_scheduler, origin_url, expected_request_status=SAVE_REQUEST_ACCEPTED, expected_task_status=SAVE_TASK_FAILED, scheduler_task_status="disabled", scheduler_task_run_status="failed", visit_status=VISIT_STATUS_FAILED, ) def test_create_save_request_no_duplicate(api_client, mocker, swh_scheduler): origin_url = "https://github.com/webpack/webpack" check_created_save_request_status( api_client, mocker, origin_url, expected_request_status=SAVE_REQUEST_ACCEPTED, expected_task_status=SAVE_TASK_NOT_YET_SCHEDULED, ) sors = list( SaveOriginRequest.objects.filter(visit_type="git", origin_url=origin_url) ) assert len(sors) == 1 check_save_request_status( api_client, mocker, swh_scheduler, origin_url, expected_request_status=SAVE_REQUEST_ACCEPTED, expected_task_status=SAVE_TASK_SCHEDULED, scheduler_task_status="next_run_scheduled", scheduler_task_run_status="scheduled", ) check_created_save_request_status( api_client, mocker, origin_url, expected_request_status=SAVE_REQUEST_ACCEPTED, expected_task_status=SAVE_TASK_SCHEDULED, ) sors = list( SaveOriginRequest.objects.filter(visit_type="git", origin_url=origin_url) ) assert len(sors) == 1 def test_get_save_requests_unknown_origin(api_client, swh_scheduler): unknown_origin_url = "https://gitlab.com/foo/bar" url = reverse( "api-1-save-origin", url_args={"visit_type": "git", "origin_url": unknown_origin_url}, ) response = check_api_get_responses(api_client, url, status_code=404) assert response.data == { "exception": "NotFoundExc", "reason": ( "No save requests found for visit of type git on origin with url %s." ) % unknown_origin_url, } _visit_type = "git" _origin_url = "https://github.com/python/cpython" def test_save_requests_rate_limit(api_client, swh_scheduler): url = reverse( "api-1-save-origin", url_args={"visit_type": _visit_type, "origin_url": _origin_url}, ) for _ in range(save_origin_rate_post): check_api_post_response(api_client, url, status_code=200) check_api_post_response(api_client, url, status_code=429) def test_save_requests_no_rate_limit_if_permission( api_client, regular_user, swh_scheduler ): regular_user.user_permissions.add( create_django_permission(API_SAVE_ORIGIN_PERMISSION) ) assert regular_user.has_perm(API_SAVE_ORIGIN_PERMISSION) api_client.force_login(regular_user) url = reverse( "api-1-save-origin", url_args={"visit_type": _visit_type, "origin_url": _origin_url}, ) - for _ in range(save_origin_rate_post): + for _ in range(save_origin_rate_post * SwhWebUserRateThrottle.NUM_REQUESTS_FACTOR): check_api_post_response(api_client, url, status_code=200) check_api_post_response(api_client, url, status_code=200) def test_save_request_unknown_repo_with_permission( api_client, regular_user, mocker, swh_scheduler ): regular_user.user_permissions.add( create_django_permission(API_SAVE_ORIGIN_PERMISSION) ) assert regular_user.has_perm(API_SAVE_ORIGIN_PERMISSION) api_client.force_login(regular_user) origin_url = "https://unkwownforge.org/user/repo" check_created_save_request_status( api_client, mocker, origin_url, expected_request_status=SAVE_REQUEST_ACCEPTED, expected_task_status=SAVE_TASK_NOT_YET_SCHEDULED, ) check_save_request_status( api_client, mocker, swh_scheduler, origin_url, expected_request_status=SAVE_REQUEST_ACCEPTED, expected_task_status=SAVE_TASK_NOT_YET_SCHEDULED, ) def test_save_request_form_server_error(api_client, mocker): create_save_origin_request = mocker.patch( "swh.web.api.views.origin_save.create_save_origin_request" ) create_save_origin_request.side_effect = Exception("Server error") url = reverse( "api-1-save-origin", url_args={"visit_type": _visit_type, "origin_url": _origin_url}, ) check_api_post_responses(api_client, url, status_code=500) @pytest.fixture def origin_to_review(): return "https://git.example.org/user/project" def test_create_save_request_pending_review_anonymous_user( api_client, origin_to_review, swh_scheduler ): url = reverse( "api-1-save-origin", url_args={"visit_type": "git", "origin_url": origin_to_review}, ) response = check_api_post_responses(api_client, url, status_code=200) assert response.data["save_request_status"] == SAVE_REQUEST_PENDING with pytest.raises(ObjectDoesNotExist): SaveAuthorizedOrigin.objects.get(url=origin_to_review) def test_create_save_request_archives_with_ambassador_user( api_client, keycloak_oidc, requests_mock, swh_scheduler, ): swh_scheduler.add_load_archive_task_type() keycloak_oidc.realm_permissions = [SWH_AMBASSADOR_PERMISSION] oidc_profile = keycloak_oidc.login() api_client.credentials(HTTP_AUTHORIZATION=f"Bearer {oidc_profile['refresh_token']}") originUrl = "https://somewhere.org/simple" artifact_version = "1.2.3" artifact_filename = f"tarball-{artifact_version}.tar.gz" artifact_url = f"{originUrl}/{artifact_filename}" content_length = "100" last_modified = "Sun, 21 Aug 2011 16:26:32 GMT" requests_mock.head( artifact_url, status_code=200, headers={ "content-length": content_length, "last-modified": last_modified, }, ) url = reverse( "api-1-save-origin", url_args={ "visit_type": "archives", "origin_url": originUrl, }, ) response = check_api_post_response( api_client, url, status_code=200, data={ "archives_data": [ { "artifact_url": artifact_url, "artifact_version": artifact_version, } ] }, ) assert response.data["save_request_status"] == SAVE_REQUEST_ACCEPTED assert SaveAuthorizedOrigin.objects.get(url=originUrl) def test_create_save_request_archives_missing_artifacts_data( api_client, keycloak_oidc, swh_scheduler ): swh_scheduler.add_load_archive_task_type() keycloak_oidc.realm_permissions = [SWH_AMBASSADOR_PERMISSION] oidc_profile = keycloak_oidc.login() api_client.credentials(HTTP_AUTHORIZATION=f"Bearer {oidc_profile['refresh_token']}") originUrl = "https://somewhere.org/simple" url = reverse( "api-1-save-origin", url_args={ "visit_type": "archives", "origin_url": originUrl, }, ) response = check_api_post_response( api_client, url, status_code=400, data={}, ) assert "Artifacts data are missing" in response.data["reason"] response = check_api_post_response( api_client, url, status_code=400, data={"archives_data": [{"artifact_url": "", "arttifact_version": "1.0"}]}, ) assert "Missing url or version for an artifact to load" in response.data["reason"] def test_create_save_request_archives_accepted_ambassador_user( api_client, origin_to_review, keycloak_oidc, mocker, swh_scheduler ): keycloak_oidc.realm_permissions = [SWH_AMBASSADOR_PERMISSION] oidc_profile = keycloak_oidc.login() api_client.credentials(HTTP_AUTHORIZATION=f"Bearer {oidc_profile['refresh_token']}") check_created_save_request_status( api_client, mocker, origin_to_review, expected_request_status=SAVE_REQUEST_ACCEPTED, expected_task_status=SAVE_TASK_NOT_YET_SCHEDULED, ) assert SaveAuthorizedOrigin.objects.get(url=origin_to_review) def test_create_save_request_anonymous_user_no_user_id(api_client, swh_scheduler): origin_url = "https://some.git.hosters/user/repo" url = reverse( "api-1-save-origin", url_args={"visit_type": "git", "origin_url": origin_url}, ) check_api_post_responses(api_client, url, status_code=200) sor = SaveOriginRequest.objects.get(origin_url=origin_url) assert sor.user_ids is None def test_create_save_request_authenticated_user_id( api_client, keycloak_oidc, swh_scheduler ): oidc_profile = keycloak_oidc.login() api_client.credentials(HTTP_AUTHORIZATION=f"Bearer {oidc_profile['refresh_token']}") origin_url = "https://some.git.hosters/user/repo2" url = reverse( "api-1-save-origin", url_args={"visit_type": "git", "origin_url": origin_url}, ) response = check_api_post_response(api_client, url, status_code=200) assert response.wsgi_request.user.id is not None user_id = str(response.wsgi_request.user.id) sor = SaveOriginRequest.objects.get(user_ids=f'"{user_id}"') assert sor.user_ids == f'"{user_id}"' def test_create_pending_save_request_multiple_authenticated_users( api_client, swh_scheduler, regular_user, regular_user2 ): origin_url = "https://some.git.hosters/user/repo3" url = reverse( "api-1-save-origin", url_args={"visit_type": "git", "origin_url": origin_url}, ) api_client.force_login(regular_user) check_api_post_response(api_client, url, status_code=200) api_client.force_login(regular_user2) check_api_post_response(api_client, url, status_code=200) assert SaveOriginRequest.objects.get(user_ids__contains=f'"{regular_user.id}"') assert SaveOriginRequest.objects.get(user_ids__contains=f'"{regular_user2.id}"') diff --git a/swh/web/tests/common/test_utils.py b/swh/web/tests/common/test_utils.py index 08127875..38551e6a 100644 --- a/swh/web/tests/common/test_utils.py +++ b/swh/web/tests/common/test_utils.py @@ -1,392 +1,392 @@ # Copyright (C) 2017-2022 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU Affero General Public License version 3, or any later version # See top-level LICENSE file for more information from base64 import b64encode import datetime import math import sys from urllib.parse import quote import pytest from django.conf.urls import url from django.test.utils import override_settings from django.urls.exceptions import NoReverseMatch from swh.web.common import utils from swh.web.common.exc import BadInputExc from swh.web.config import SWH_WEB_SERVER_NAME, SWH_WEB_STAGING_SERVER_NAMES, get_config def test_shorten_path_noop(): noops = ["/api/", "/browse/", "/content/symbol/foobar/"] for noop in noops: assert utils.shorten_path(noop) == noop def test_shorten_path_sha1(): sha1 = "aafb16d69fd30ff58afdd69036a26047f3aebdc6" short_sha1 = sha1[:8] + "..." templates = [ "/api/1/content/sha1:%s/", "/api/1/content/sha1_git:%s/", "/api/1/directory/%s/", "/api/1/content/sha1:%s/ctags/", ] for template in templates: assert utils.shorten_path(template % sha1) == template % short_sha1 def test_shorten_path_sha256(): sha256 = "aafb16d69fd30ff58afdd69036a26047" "213add102934013a014dfca031c41aef" short_sha256 = sha256[:8] + "..." templates = [ "/api/1/content/sha256:%s/", "/api/1/directory/%s/", "/api/1/content/sha256:%s/filetype/", ] for template in templates: assert utils.shorten_path(template % sha256) == template % short_sha256 @pytest.mark.parametrize( "input_timestamp, output_date", [ ( "2016-01-12", datetime.datetime(2016, 1, 12, 0, 0, tzinfo=datetime.timezone.utc), ), ( "2016-01-12T09:19:12+0100", datetime.datetime(2016, 1, 12, 8, 19, 12, tzinfo=datetime.timezone.utc), ), ( "2007-01-14T20:34:22Z", datetime.datetime(2007, 1, 14, 20, 34, 22, tzinfo=datetime.timezone.utc), ), ], ) def test_parse_iso8601_date_to_utc_ok(input_timestamp, output_date): assert utils.parse_iso8601_date_to_utc(input_timestamp) == output_date @pytest.mark.parametrize( "invalid_iso8601_timestamp", ["Today is January 1, 2047 at 8:21:00AM", "1452591542"] ) def test_parse_iso8601_date_to_utc_ko(invalid_iso8601_timestamp): with pytest.raises(BadInputExc): utils.parse_iso8601_date_to_utc(invalid_iso8601_timestamp) def test_format_utc_iso_date(): assert ( utils.format_utc_iso_date("2017-05-04T13:27:13+02:00") - == "04 May 2017, 11:27 UTC" + == "04 May 2017, 11:27:13 UTC" ) def test_gen_path_info(): input_path = "/home/user/swh-environment/swh-web/" expected_result = [ {"name": "home", "path": "home"}, {"name": "user", "path": "home/user"}, {"name": "swh-environment", "path": "home/user/swh-environment"}, {"name": "swh-web", "path": "home/user/swh-environment/swh-web"}, ] path_info = utils.gen_path_info(input_path) assert path_info == expected_result input_path = "home/user/swh-environment/swh-web" path_info = utils.gen_path_info(input_path) assert path_info == expected_result def test_rst_to_html(): rst = ( "Section\n" "=======\n\n" "**Some strong text**\n\n" "* This is a bulleted list.\n" "* It has two items, the second\n" " item uses two lines.\n" "\n" "1. This is a numbered list.\n" "2. It has two items too.\n" "\n" "#. This is a numbered list.\n" "#. It has two items too.\n" ) expected_html = ( '

Section

\n' "

Some strong text

\n" '
    \n' "
  • This is a bulleted list.

  • \n" "
  • It has two items, the second\n" "item uses two lines.

  • \n" "
\n" '
    \n' "
  1. This is a numbered list.

  2. \n" "
  3. It has two items too.

  4. \n" "
  5. This is a numbered list.

  6. \n" "
  7. It has two items too.

  8. \n" "
\n" "
" ) assert utils.rst_to_html(rst) == expected_html def sample_test_view(request, string, number): pass def sample_test_view_no_url_args(request): pass urlpatterns = [ url( r"^sample/test/(?P.+)/view/(?P[0-9]+)/$", sample_test_view, name="sample-test-view", ), url( r"^sample/test/view/no/url/args/$", sample_test_view_no_url_args, name="sample-test-view-no-url-args", ), ] @override_settings(ROOT_URLCONF=__name__) def test_reverse_url_args_only_ok(): string = "foo" number = 55 url = utils.reverse( "sample-test-view", url_args={"string": string, "number": number} ) assert url == f"/sample/test/{string}/view/{number}/" @override_settings(ROOT_URLCONF=__name__) def test_reverse_url_args_only_ko(): string = "foo" with pytest.raises(NoReverseMatch): utils.reverse("sample-test-view", url_args={"string": string, "number": string}) @override_settings(ROOT_URLCONF=__name__) def test_reverse_no_url_args(): url = utils.reverse("sample-test-view-no-url-args") assert url == "/sample/test/view/no/url/args/" @override_settings(ROOT_URLCONF=__name__) def test_reverse_query_params_only(): start = 0 scope = "foo" url = utils.reverse( "sample-test-view-no-url-args", query_params={"start": start, "scope": scope} ) assert url == f"/sample/test/view/no/url/args/?scope={scope}&start={start}" url = utils.reverse( "sample-test-view-no-url-args", query_params={"start": start, "scope": None} ) assert url == f"/sample/test/view/no/url/args/?start={start}" @override_settings(ROOT_URLCONF=__name__) def test_reverse_query_params_encode(): libname = "libstc++" url = utils.reverse( "sample-test-view-no-url-args", query_params={"libname": libname} ) assert url == f"/sample/test/view/no/url/args/?libname={quote(libname, safe='/;:')}" @override_settings(ROOT_URLCONF=__name__) def test_reverse_url_args_query_params(): string = "foo" number = 55 start = 10 scope = "bar" url = utils.reverse( "sample-test-view", url_args={"string": string, "number": number}, query_params={"start": start, "scope": scope}, ) assert url == f"/sample/test/{string}/view/{number}/?scope={scope}&start={start}" @override_settings(ROOT_URLCONF=__name__) def test_reverse_absolute_uri(request_factory): request = request_factory.get(utils.reverse("sample-test-view-no-url-args")) url = utils.reverse("sample-test-view-no-url-args", request=request) assert url == f"http://{request.META['SERVER_NAME']}/sample/test/view/no/url/args/" def test_get_deposits_list(requests_mock): deposits_data = { "count": 2, "results": [ { "check_task_id": "351820217", "client": 2, "collection": 1, "complete_date": "2021-01-21T07:52:19.919312Z", "external_id": "hal-03116143", "id": 1412, "load_task_id": "351820260", "origin_url": "https://hal.archives-ouvertes.fr/hal-03116143", "parent": None, "reception_date": "2021-01-21T07:52:19.471019Z", "status": "done", "status_detail": None, "swhid": "swh:1:dir:f25157ad1b13cb20ac3457d4f6756b49ac63d079", }, { "check_task_id": "381576507", "client": 2, "collection": 1, "complete_date": "2021-07-07T08:00:44.726676Z", "external_id": "hal-03275052", "id": 1693, "load_task_id": "381576508", "origin_url": "https://hal.archives-ouvertes.fr/hal-03275052", "parent": None, "reception_date": "2021-07-07T08:00:44.327661Z", "status": "done", "status_detail": None, "swhid": "swh:1:dir:825fa96d1810177ec08a772ffa5bd34bbd08b89c", }, ], } config = get_config()["deposit"] private_api_url = config["private_api_url"].rstrip("/") + "/" deposits_list_url = private_api_url + "deposits" basic_auth_payload = ( config["private_api_user"] + ":" + config["private_api_password"] ).encode() requests_mock.get( deposits_list_url, json=deposits_data, request_headers={ "Authorization": f"Basic {b64encode(basic_auth_payload).decode('ascii')}" }, ) assert utils.get_deposits_list() == deposits_data["results"] @pytest.mark.parametrize("backend", ["swh-search", "swh-storage"]) def test_origin_visit_types(mocker, backend): if backend != "swh-search": # equivalent to not configuring search in the config search = mocker.patch("swh.web.common.utils.search") search.return_value = None assert utils.origin_visit_types() == [] else: # see swh/web/tests/data.py for origins added for tests assert utils.origin_visit_types() == ["git", "tar"] @pytest.mark.parametrize("server_name", ["localhost", "127.0.0.1", "testserver"]) def test_is_swh_web_development(request_factory, server_name): request = request_factory.get("/", SERVER_NAME=server_name) assert utils.is_swh_web_development(request) @pytest.mark.parametrize("server_name", SWH_WEB_STAGING_SERVER_NAMES) def test_is_swh_web_staging(request_factory, server_name): request = request_factory.get("/", SERVER_NAME=server_name) assert utils.is_swh_web_staging(request) def test_is_swh_web_production(request_factory): request = request_factory.get("/", SERVER_NAME=SWH_WEB_SERVER_NAME) assert utils.is_swh_web_production(request) def add(x, y): return x + y def test_django_cache(mocker): """Decorated function should be called once and returned value put in django cache.""" spy_add = mocker.spy(sys.modules[__name__], "add") spy_cache_set = mocker.spy(utils.cache, "set") cached_add = utils.django_cache()(add) val = cached_add(1, 2) val2 = cached_add(1, 2) assert val == val2 == 3 assert spy_add.call_count == 1 assert spy_cache_set.call_count == 1 def test_django_cache_invalidate_cache_pred(mocker): """Decorated function should be called twice and returned value put in django cache twice.""" spy_add = mocker.spy(sys.modules[__name__], "add") spy_cache_set = mocker.spy(utils.cache, "set") cached_add = utils.django_cache(invalidate_cache_pred=lambda val: val == 3)(add) val = cached_add(1, 2) val2 = cached_add(1, 2) assert val == val2 == 3 assert spy_add.call_count == 2 assert spy_cache_set.call_count == 2 def test_django_cache_raise_exception(mocker): """Decorated function should be called twice, exceptions should be raised and no value put in django cache""" spy_add = mocker.spy(sys.modules[__name__], "add") spy_cache_set = mocker.spy(utils.cache, "set") cached_add = utils.django_cache()(add) with pytest.raises(TypeError): cached_add(1, "2") with pytest.raises(TypeError): cached_add(1, "2") assert spy_add.call_count == 2 assert spy_cache_set.call_count == 0 def test_django_cache_catch_exception(mocker): """Decorated function should be called twice, exceptions should not be raised, specified fallback value should be returned and no value put in django cache""" spy_add = mocker.spy(sys.modules[__name__], "add") spy_cache_set = mocker.spy(utils.cache, "set") cached_add = utils.django_cache( catch_exception=True, exception_return_value=math.nan )(add) val = cached_add(1, "2") val2 = cached_add(1, "2") assert math.isnan(val) assert math.isnan(val2) assert spy_add.call_count == 2 assert spy_cache_set.call_count == 0